- 什么是类?什么是对象?
举例:类就像做月饼时用到的模子,对象就像月饼
面向对象
- Oop:面向对象程序设计语言,三大特点:继承,封装,多态
lass Person(类名){
public String name;//属性 成员变量 实例成员变量
public int age;
}
实例化一个对象可以new
static
- static 静态变量 存放区域:方法区、属于对象:存放在堆上
- 静态成员变量的访问通过 类名.属性
通过对象的引用也可去访问,但不建议 - 静态成员方法的调用通过 类名.方法 进行调用
- 不加static的叫实例成员变量(通过对象的引用访问)
- 所有被static所修饰(静态成员变量)的不管是方法、成员的调用或访问,都只需要通过类名.就可以实现(也就是说其不依赖对象,并且只有一份,存在方法区)
- Final 常量,被其修饰后放在哪个区域不一定
- 为什么main函数是static?如果不是静态的,那么main函数的调用需要对象
- 成员变量:如果没有赋值,其默认值为自己所对应的0值
引用类型--------》null 数组、类、
String简单类型---------》0 char:‘\u0000’blooean:false - 静态的方法内部不能访问非静态数据成员:因为静态方法不依赖对象,对象是否产生并不影响调用静态的方法,而非静态数据成员依赖于对象。 ① 静态方法可以访问静态数据成员,并可以更改静态数据成员的值封装:Private:私有的
- 静态方法的初始化方式:
①提供一系列的get和set方法(public)快捷键alt+insert
②构造函数(方法):方法名和类名一样。如果在实现类的时候没有写构造方法,那么编译器会自动生成一个不带有参数的构造方法。但是,如果自己写了一个不带有参数的构造方法,那么编译器不会自动生成一个不带有参数的构造方法。可以为私有的(单例模式)
作用:实例化一个对象->构造方法 - 一个对象的产生有几步?2步
1、为对象分配内存
2、调用合适的构造方法(构造方法不止一个) - this代表什么?当前对象的引用
- this.成员方法
this.成员变量
this():调用带有参数的构造方法,必须放在第一行。
5、 构造方法也可以是私有的、没有返回值,构造方法也能发生重载
public Person(){
public Person(String name){
public Person(String name,int age){new
执行过程:1、为对象分配内存空间
2、调用对象的构造方法语法规则:方法名必须与类名相同
构造方法没有返回值类型声明
3、每一个类中一定至少存在一个构造方法Object:任何类的父类
重载
@override 重写(以字符串形式打印)
Override:注解
重载:函数名相同,参数(类型和个数)不同,返回值不要求、
代码块:本地代码块、实例代码块(在类的内部方法的外部,用来初始化类的实例数据成员)
实例代码块优先于构造方法执行静态代码块(用static修饰用来初始化静态的数据成员)静态代码块>实例代码块>构造方法,同级与顺序有关
静态的(无论是方法还是)只初始化一次匿名对象只能在创建对象的时候使用,只能用一次