1、static静态的特点
(1)数据共享
(2)属于类的.并不属于对象
(3)优先于对象产生的
2、优于对象产生(构造器解释)
在程序执行时,是先创建静态构造器,再创建通用构造器。
public class Test03{ { System.out.println("---我是通用构造器---"); } static{ System.out.println("---我是静态构造器---"); } //创建构造方法 public Test03(){ System.out.println("------构造方法------"); } //定义主方法 public static void main(String[] args){ new Test03(); //调用构造方法 } }
3、静态属性或方法使用类名去访问(静态方法也可直接调用)
public class Test03{ static char level = 'D'; //定义静态属性 { System.out.println("---我是通用构造器---"); } //静态方法会默认执行,不创建对象也会执行 static{ System.out.println("---我是静态构造器---"); } //创建构造方法 public Test03(){ System.out.println("------构造方法------"); } public static void SStatic(){ System.out.print("She is " + size + ' '); //使用静态属性可以不用this System.out.println("------我是静态方法------"); } //定义主方法 public static void main(String[] args){ Test03.SStatic(); //使用类名访问静态方法 SStatic(); //直接访问静态方法 } }
1、权限类别
public:公共的,所有成员都能访问
default:默认的,也称包访问权限,在自己的包内才能访问,其他包内不能访问
private:私有的,在其他类中不能访问(包中可以有多个类)
2、练习
public class Test03{ public String a = "public"; //公有变量 String b = "default"; //默认变量 private String c = "private"; //私有变量 public static void main(String[] args){ Test03 Te = new Test03(); //创建对象 //主方法中访问三种类型的变量 System.out.println(Te.a); System.out.println(Te.b); System.out.println(Te.c); } }
在其他包(文件夹)中则无法访问到变量b,在其他类中无法访问到变量c。
我们平时用的最多的就是public和private。
1、getter、setter原型
public class Test03 { public static void main(String[] args){ Test03_Person P = new Test03_Person(); //创建对象人 //年龄的语法没有问题。但是,逻辑上不对,年龄不可能是负数! // P.name = ”草帽路飞"; //给对象属性赋值 // P.age = -1; //查看这个人的名字和年龄 P.setName("草帽路飞"); //给私有成员属性赋值 P.setAge(-1); //给私有成员属性赋值 System.out.println(P.getName()); //获取私有成员属性 System.out.println(P.getAge()); P.act(); } }
public class Test03_Person{ //成员安量是私有的 private String name; private int age; //setter原型 public void setName(String name){ this.name = name; } //保证我们的成员变量是值是规范的 public void setAge(int age){ if (age<0){ this.age = 0; }else{ this.age = age; } } //getter原型 public String getName(){ return this.name; } public int getAge(){ return this.age; } //定义人的行为方法 public void act(){ System.out.println("行为:" + this.age + "岁大的" + this.name + "正在散步~"); } }