一、静态
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。
三、getter与setter
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 + "正在散步~");
}
}
- 结果
2、getter与setter的调出方法
在写好属性之后,空白处右击,Generate,选Getter and Setter,就会自动生成以上getter与setter的原型框架,只需要稍作修改就可以直接使用了。