java成员变量与局部变量区别:
1、局部变量作用域仅限于定义它的方法;成员变量的作用域在整个类内部都可见。
2、java会给成员变量一个初始值;java不会给局部变量赋予初始值。
3、在不同方法中可以有同名局部变量。
4、两类变量同名时,局部变量具有更高优先级。
java构造方法:
1、无指定构造方法时,系统自动添加无参构造;有指定构造时,无论是否有参,都不会自动添加。
2、构造方法不但可以给对象的属性赋值,还可以保证赋值的合理性。
静态方法:
1、静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
2、如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
3、在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。
4、静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
静态初始化块:
1、在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。
2、需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
3、程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
封装:
1、概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
2、好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现。
3、实现步骤:first设置属性的可见性为private;second创建getter和setter用于属性的读写;third在getter和setter方法中添加控制语句,判断属性的合法性。
包:
1、包的作用:管理java文件;解决同名文件冲突,比如说music和movie都有music类。相当于文件夹。
2、定义包:package包名,注:必须放在java源程序第一行,包名间用“.”隔开,相当于os中的“/”。
3、系统中的包:java.功能.类 java.lang包含java语言基础的类;java.util包含java语言中各种工具类;java.io包含输入输出相关功能的类。
4、包的使用:可以通过import关键字,在某个文件使用其它文件中的类。注:java中包的命名规范是全小写字母。使用时不但可以加载某个包下的所有文件用“*”,也可以加载某个具体子包下的所有文件。
this关键字:
this关键字代表当前对象,this.属性 操作当前对象的属性,this.方法 调用当前对象的方法;封装对象的属性时,经常会使用this关键字。