1.面向对象
1.1 This
1.1.1 是什么
this是对象中,保存自身内存地址的一个引用类型变量
this表示对象自己
1.1.2 能做什么
1.在成员方法/构造方法中 区分同名的局部变量和成员变量
2.用在某个构造方法之中,重载调用当前类的替他的构造方法,提高代码的重用性
3.return this:返回当前对象的内存地址,可以做到链式调用
1.1.3 怎么用
1.1.3.1 区分成员和局部变量
调用成员变量直接this.属性值,局部变量则是直接写就行
1.1.3.2 重载调用构造方法
重载调用有参构造,必须在构造方法中的第一行(有效代码的第一行,注释和换行之类的不算)
this(1970,1,1)
1.1.3.3 链式调用
t.m1().m2();
1.1.4 注意事项
1.重载调用构造方法语句,必须在构造方法的第一行
2.this 不能出现在静态方法中
1.2 Static
1.2.1 是什么
static是一个修饰符,主要用来区分静态和动态属性
1.2.1 能做什么
1.static修饰的类体中的变量是静态变量
2.static修饰的方法是静态方法
3.static还可以定义静态语句块
static{}
1.2.3 怎么用
1.2.3.1 静态变量
static int i = 20;
1.2.3.2 静态方法
public static void m1(){
System.out.println("静态方法");
}
1.2.3.3 静态语句块
一个大括号就是一个语句块,而方法是一个有名字的语句块,可以重复使用
而静态语句块 等同于是没有名字,没有权限控制,没有参数列表,没有返回值的静态方法。同理也就不能重复使用。
静态语句块和静态方法的优先级一样
1.2.4 实例语句块
等同看作成员方法
语法:{ }
创建一次对象,就执行一次
1.3 封装
1.3.1 是什么
封装是把对象所有的部分组合在一起,封装使用访问控制修饰符,将类的数据隐藏起来,
控制用户对数据的访问和修改的程度。
适当的封装可以让代码更容易理解和维护,也加强了代码的安全性
1.3.2 软件包机制
1.3.2.1 Package
package:是设置编译之后的calss文件的保存位置,和源文件位置无关
如果源文件中,没有出现package语句,则class文件和源文件在同目录下
*软件包机制
1.为了解决命名冲突问题,在类名前加入命名空间
2.package语句只能出现在java源文件的第一行,也可以没有
3.oackage一般采用公司域名倒叙的方式
公司域名倒叙.项目名.模块名
4.带有package语句的java文件的编译
5.带有package语句的class文件的运行
完整的类名 是带有包名的
能够找到这个文件的全路径,才是这个文件的文件名
被调用的类和当前类如果在同一目录下(同包)则可以直接使用
否则就要写类名
1.3.2.2 import
1.引入当前类中需要的其他类,否则就需要些类全名,引入之后,就可以直接写类名使用即可
2.必须出现在package语句之下,class语句之上
3.import 包名.类名:只引入对应的某一个类
4.import 包名.*:引入该包所有的类
5.java.lang.* 下面的类是核心类,使用不需要导包
注意:导包的时候 注意别导错包, 按下空格 和 回车的时候 也会自动导入
比如Date , util下和sql下都有,就很容易出现错误,需要额外留意
静态导入当我们在使用其他类的静态属性的时候,就不需要使用类名调用了。而是直接写名字调用
import static 包名.类名.属性:导入某个静态属性
import static 包名.类名.*:导入所有的静态属性
1.3.3 权限控制
权限控制修饰符
限制某个数据 可以 被谁使用
public , private, protected
public 公有的谁都能访问
private 私有的,只有当前类能访问
protected :受保护的,继承权限
1. 在继承关系的体系中,通过子类调用
2.同包,就算没有继承关系也能访问
默认:当不使用以上三种修饰符的时候,则是默认权限,只能让当前包中的类使用