1.public private protected和默认的区别
1. private
private只能在本类中访问
2.public
public任何地方都能访问
3.protected
本包内才能访问,包外的话只有子类(被extends)能访问
空值默认=protected-包外子类访问权限
2.JAVA的静态static
静态表示该成员属于某个类,而不属于某个对象,
如果不加static修饰的成员是对象成员,也就是归每个对象所有的。
加static修饰的成员是类成员,就是可以由一个类直接调用,为所有对象共有的
加static修饰的成员是类成员,就是可以由一个类直接调用,为所有对象共有的
所以直接用 类名.成员 调用。
JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。
访问静态成员的时候,方法也得加static
所以当遇到private static String nation; 的时候,怎么在外面的类怎么设置nation信息呢?
在当前类中添加:
static void setNation(String nation){ //因为设置的是static对象,所以添加static
Person.nation=nation; //因为static属于类,所以需要用 类名.对象 来设置(而非this)
}
静态是这个类的属性,不管创建多少个实例,只要修改了一个实例对象的静态成员,其它实例对象的这个静态成员也会改变。
有静态成员与非静态,不能定义为静态的
3.this关键字
this代表的是对象,代表哪一个对象呢?
哪个对象调用this所在的方法,this就代表那个对象。
构造函数的调用易产生同名,添加this进行区分
(添加this才能成为成员变量,直接name就是局部变量)
凡是访问对象中的数据的方法都持有this引用