面向对象三大特征:
封装(encapsulation),继承(inheritance),多态(polymorphism);
类与对象的关系:
类:就是描述显示生活中的事物;
对象:就是现实生活中存在的实体;
面向对象的特点:
1,是一种符合人们思考习惯的思想;
2,可以将复杂的事情简单化
3,将执行者变成了指挥者
成员变量和局部变量:
作用范围:
局部变量:方法内
成员变量:类中,对整个类有效
存储空间:
局部变量:栈内存
成员变量:堆内存
初始化值:
局部变量:必须手动初始化值
成员变量:有默认初始化值
成员变量可以被static,private修饰
局部变量不可以被static,private修饰;
匿名对象:
1,没有名字 2,调用类中的变量没有意义 3,匿名对象可以调用方法 4,匿名对象可以当作参数传递
匿名对象使用情况:
当对对象方法仅一次的调用时
匿名对象可以当作参数传递
封装:
其实,就是隐藏了程序的实现细节,对外提供了一个访问方式。
private 权限关键字,用于修饰成员变量,被private修饰后的成员变量只能在本类中进行访问,其他的类访问不到。
构造函数:
构造函数:必须要和类名一致 不用定义返回值类型, 不能写return语句;
构造函数在类被创建对象的时候就已经运行了
特点:
在类中没有写构造函数时,系统会自动添加一个空参数的构造函数。
用途:用于创建对象,也有可能进行初始化。
注:多个构造函数是以重载形式存在的;
this:
this关键字,表示当期对象的引用,谁建立这个类当前的对象,this就表示谁是当前的引用,
this:
this关键字,表示当期对象的引用,谁建立这个类当前的对象,this就表示谁是当前的引用,
static关键字:
static修饰的属性叫做类属性,随着类的加载而加载;
static修饰的方法叫做类方法;
static 属性和实例属性有什么区别?
static属性是类属性,能够使用类名调用,也可以使用对象来调用。
实例属性是对象的属性,只能使用对象来调用;
static 特点:
随着类的加载而加载
优先于对象的存在
被所有对象所共享
可以直接被类名调用
注意:静态方法中能方法静态成员;
静态方法中不可以有this,super
静态的利与弊:
利:对共享数据进行单独的存储,节省空间,可以被类名调用
弊端:生命周期过长,访问局限性(只能访问静态)
构造代码块和局部代码块:
局部代码块:节约资源。有些变量,没有必要存在的那么久就可以将其封装起来,执行完,就释放。
构造代码块:用于给所有对象初始化,需要写在构造函数之前(规范)