static关键字

莫道桑榆晚,为霞尚满天。这篇文章主要讲述static关键字相关的知识,希望能为你提供帮助。
static关键字 1. 使用static定义属性:(类名称.属性)
代码如下:

class Personprivate String name ; private int age ; static String country = "北京" ; public Person(String name, int age) this.name = name ; this.age = age ; public void setName(String name) this.name = name ; public void setAge(int age) this.age = age ; public String getName() return this.name ; public int getAge() return this.age ; public String getInfo() return"姓名:" + this.name + ",年龄:"+ this.age + ",城市:"+ this.country ; public class Testpublic static void main(String args[]) Person per1 = new Person("张三" , 20) ; Person per2 = new Person("李四" , 22) ; Person per3 = new Person("王五" , 21) ; per1.country = "燕京" ; System.out.println(per1.getInfo()) ; System.out.println(per2.getInfo()) ; System.out.println(per3.getInfo()) ;

内存图分析:
static关键字

文章图片

文字分析如下:
Country属性的修改,一定会影响到其他对象,static定义的属性表示公共属性,因此,应由所有对象的集合进行调用,所有对象的集合就是类,即:static属性最好的调用方式,是通过“类名称.属性”的方式进行调用完成。
类名称.属性————//Person.country = “北京” ;
注意:
  • 使用static定义的属性不在堆内存中保存,保存在全局数据区
  • 使用static定义的属性表示类属性,类属性可以由类名称直接调用;
  • Static属性虽然定义在类之中,但是可以在没有实例化对象的时候进行调用(普通属性保存在堆内存之中,但是static保存在全局数据区之中)。
提示:在以后的开发之中,首先想到的是定义普通属性,在后面编程过程中在根据需要添加。
2. 使用static定义方法
格式:
public static void setCountry(String c)//Static定义方法 country = c ;

代码如下:
class Personprivate String name ; private int age ; private static String country = "北京" ; public Person(String name, int age) this.name = name ; this.age = age ; public static void setCountry(String c)//Static定义方法 country = c ; public static String getCountry() return country ; public void setName(String name) this.name = name ; public void setAge(int age) this.age = age ; public String getName() return this.name ; public int getAge() return this.age ; public String getInfo() return"姓名:" + this.name + ",年龄:"+ this.age + ",城市:"+ this.country ; public class Testpublic static void main(String args[])Person.country = "燕京" ; //类.static方法() System.out.println(per1.getInfo()) ; Person per1 = new Person("张三" , 20) ; System.out.println(per1.getInfo()) ;

static分为两派:static派、非static派
  • static定义的方法不能用非static的方法和属性
  • 非static的属性和方法,必须实例化对象之后才可以进行调用
3. 主方法(public static void main(String args[]))
代码如下:
public class Testpublic static void main(String args[])print() ; //直接调用public static void print() System.out.print("Hello World !") ; public class Testpublic static void main(String args[])new.Test().print() ; //直接调用public void print() System.out.print("Hello World !") ;

主方法的组成:
  • public::是一种访问权限,表示公共;
  • static:此方法由类命名称直接调用,执行类:java 类名称;
  • void: 主方法是一切的开始;
  • main:系统规定的一个方法名称,执行类的时候默认找到此名称;
  • String args[]:表示的是一些运行时的参数,通过字符串接收。
接受参数:
public class Testpublic static void main(String args[])for(int x = 0 ; x < args.length ; x ++) System.out.println(args[x]) ;

static关键字

文章图片

4. static关键字的使用
使用static的情况:
  • 希望可以再没有实例化对象的时候可以轻松的执行类的某些操作;
  • 希望数据库共享。
范例:统计一个类产生多少个实例化对象,现在增加一个统计操作,可以统计出一个类之中的所产生的实例化对象的个数,如果现在要产生新的实例化对象,则一定会调用类之中的构造方法,所以可以再构造方法中增加统计,并且这个统计的变量,应该是所有对象共享的,那么应该将其定义为static属性。
代码如下:
class Personprivate static int count = 0 ; public Person()//构造方法一定会被调用 System.out.println("对象的个数:"+ ++count) ; public class Testpublic static void main(String args[]) Person per1 = new Person() ; Person per2 = new Person() ; Person per3 = new Person() ;

static关键字

文章图片

范例:为属性自动命名
class Bookprivate static int count = 0 ; private String title ; public Book() this("NOTTITLE:" + count++) ; public Book(String title) this.title = title ; public String getTitle() return this.title ; public class Testpublic static void main(String args[]) System.out.println(new Book().getTitle()) ; System.out.println(new Book("java SE").getTitle()) ; System.out.println(new Book().getTitle()) ;

【static关键字】
static关键字

文章图片


    推荐阅读