面向对象进阶
封装private
封装的意义在于保护或防止代码(数据)被无意中破坏。
保护成员属性,不让类以外的程序直接访问和修改;
封装的原则:隐藏对象的属性和实现细节,仅对外公开访问方法,并控制访问级别。
在开发中为了避免逻辑错误,建议对所有属性进行封装,为其提供setter和getter方法进行设置和取得
操作。
this关键字
表示当前对象
能完成的操作:
调用类中的属性
调用类中的方法或构造方法。在一个构造方法中,调用另一个方法时,调用的代码,必须写在构造方法
的第一行。
static关键字
static 表示静态的意思,可以用来修饰成员变量和成员方法,静态代码块和静态内部类。
主要作用在于创建独立于具体对象的域变量或者方法。
被static修饰的方法或者变量不需要依赖于对象进行访问,只要类被加载了,就可以通过类名去进行访
问。并且不会因为对象的多次创建,而在内存中建立多份数据。
*注意:
- 静态成员 在类被加载时加载并初始化。
- 无论一个了存在多少对象,静态的属性,永远在内存中只有一份(可以理解为所有对象公有)
- 访问时 静态不能访问非静态 非静态可以访问静态。
面向对象进阶
代码块
在执行流程中出现的代码块,我们称其为普通代码块。
构造代码块是在类中的成员代码块,在每次对象创建时执行,执行在构造方法之前。
静态代码块是在类中用static 修饰的成员代码块,在类加载时执行,每次程序启动到关闭时,只会执行一次的代码块。
同步代码块在多线程的学习部分
构造方法 与 构造代码块 以及静态代码块的执行顺序:
静态代码块——>构造代码块——>构造方法
public static void main(String[] args)
public:表示公共的内容,可以被所有操作所调用
static: 表示方法是静态的,可以由类名称直接调用
void :表示没有任何方法的返回值操作
main: 系统规定好的方法名称。如果main写错了或者没有写,会报错:NoSuchMethodError:main
String [] args :字符串数组,接收参数的
所有参数在执行类的时候以空格进行分裂。