-
在封装类中一般不会使用static来描述特征属性和行为方法,如果描述则这些特征和行为是固有的。
-
说明:1.用static描述的属性和方法均为静态的,可以直接用类名调用
2.当一个类的成员变量由static来描述的时候,其变量为类变量(静态变量),与对象无关。
3.往封装类的静态成员变量设置值的时候均会用到封装类。
-
特点:当一个类的成员变量和成员方法由static描述时,其可以直接由类名调用(也可以由对象调用)
//Person02.sayHello(); 普通的成员方法是不能够直接由类名调用,必须由对象名调用
-
一般在工具类当中的成员变量和方法中会使用到static关键字,还有一些链接数据库的类,产生操作数据库对象的类中会用到static关键字。
/** * 描述客观事物:人 */ public class Person2 { //特征 //固有特征,跟类有关 //眼睛个数,每个人都一样,则用static关键字修饰 //静态变量,类变量 static int eyeNum = 2; //特征 //非固有特征,跟对象有关 //成员变量 //姓名 String name; //身高cm double height; //体重kg double weight; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getWeight() { return weight; } public void setWeight(double weight) { this.weight = weight; } //固有行为,跟类有关 //使用static关键字修饰,静态方法 //吃饭,每个人都一样 public static void eat(){ //静态方法中只能使用静态变量 // System.out.println("姓名为:"+name); System.out.println("眼睛为"+eyeNum+"个的人正在吃饭。。"); } //说你好,非固有行为 public void sayHello(){ System.out.println("hello, my name is "+name+",height is "+height+"cm,weight is"+weight+"kg"); } } public class Person2Test1 { public static void main(String[] args) { //通过Person2类来创建李四对象 Person2 person1 = new Person2(); //给特征属性成员变量设置值 person1.setName("李四"); person1.setHeight(174.5); person1.setWeight(68); //打印这个对象的特征 System.out.println("李四的眼睛个数:"+Person2.eyeNum); //可以用类名或者对象名调用 System.out.println("李四的姓名:"+person1.getName()); System.out.println("李四的身高:"+person1.getHeight()+"cm"); System.out.println("李四的体重:"+person1.getWeight()+"kg"); //执行行为 Person2.eat(); //吃饭,固有静态的,可以用类名或者对象名调用 person1.sayHello(); //说你好,非固有的 } }