Java自学笔记第十一天

访问控制符:

1)private:这个成员只能在当前类的内部被访问

2)default:可以被相同包下的其它类访问

3)protected:可以被同一个包中中的其他类访问,也可以被不同包中的子类访问

4)public:可以被所有类访问

java不同访问修饰符总结(必看)

访问修饰符: 定义为static,则强调只有一份,定义为final,则说明是个常量 

1)static关键字:

通常来说,当创建类时,就是在描述那个类的对象的外观和行为。除非用new创建那个类的对象,否则,实际上并未获得任何对象。有两种情形是上述情况无法解决的,一种情况是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建任何对象。另一种情况是,希望某个方法不与包含它的类的任何对象关联在一起,也就是说,即使没有创建对象,也能够调用这个方法。通过static可以满足这两方面的需要。

static方法就是没有this的方法,所以不能调用非静态方法和非静态成员

static静态变量和非静态变量的区别:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量 否则的话会抛出编译错误 静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题

2)final:

对于基本类型,final使数值恒定不变;用于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。

final修饰方法表示该方法不能被重写和继承,可以关闭动态绑定

当将某个类的整体定义为final时,就表明了你不打算继承该类,也不允许别人这么做,由于final类禁止继承,所以final类中所有的方法都隐式指定为是final,因为无法覆盖它们。

final和private关键字:类中所有的private方法都隐式地指定为是final的。由于无法取用private方法,所以也就无法覆盖它。可以对private方法添加final修饰词,但这并不能给该方法增加任何额外的意义。

3)如果一个域被定义为static final,则这个域就是一个静态常量访问控制符:

1)private:这个成员只能在当前类的内部被访问

2)default:可以被相同包下的其它类访问

3)protected:可以被同一个包中中的其他类访问,也可以被不同包中的子类访问

4)public:可以被所有类访问

java不同访问修饰符总结(必看)

访问修饰符: 定义为static,则强调只有一份,定义为final,则说明是个常量 

1)static关键字:

通常来说,当创建类时,就是在描述那个类的对象的外观和行为。除非用new创建那个类的对象,否则,实际上并未获得任何对象。有两种情形是上述情况无法解决的,一种情况是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建任何对象。另一种情况是,希望某个方法不与包含它的类的任何对象关联在一起,也就是说,即使没有创建对象,也能够调用这个方法。通过static可以满足这两方面的需要。

static方法就是没有this的方法,所以不能调用非静态方法和非静态成员

static静态变量和非静态变量的区别:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量 否则的话会抛出编译错误 静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题

2)final:

对于基本类型,final使数值恒定不变;用于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。

final修饰方法表示该方法不能被重写和继承,可以关闭动态绑定

当将某个类的整体定义为final时,就表明了你不打算继承该类,也不允许别人这么做,由于final类禁止继承,所以final类中所有的方法都隐式指定为是final,因为无法覆盖它们。

final和private关键字:类中所有的private方法都隐式地指定为是final的。由于无法取用private方法,所以也就无法覆盖它。可以对private方法添加final修饰词,但这并不能给该方法增加任何意义。

posted @ 2021-08-03 21:29  热爱代码的某人  阅读(43)  评论(0)    收藏  举报