ctrl+alt+m = 把代码包裹成方法
ctrl+左键 = 打开方法
面向对象:不考虑程序具体的实现过程,只是调用特定的对象解决问题
类:属性和行为的集合—>人类
对象:就是该类事物的具体体现---->学生
类包含成员变量和成员方法。
成员变量就是类的属性,成员方法就是类的行为。
对象的创建和使用
格式:类名 对象名 = new 类名();
对象的使用:成员变量:对象名.成员变量
成员方法: 对象名.成员方法() 有一个括号
成员变量与局部变量的区别
- 在类中的位置不同 : 成员变量在类中,方法外
局部变量是在方法中 - 在内存中的位置不同:成员变量 在堆中存储,局部变量在栈中存储
- 初始化的值不同:成员变量有默认值。局部变量没有默认值,必须定义后使用
- 局部变量:方法使用后就会消失。成员变量在类中才会消失
private
private修饰的成员在本类中才能访问,其他地方不能访问
如果想访问,和public void set成员变量名(){} public 返回值类型 get成员变量名(){} 搭配使用,这样在别的类中也能访问到private修饰的成员,可以在set成员变量名函数中,对输入的值进行筛选,筛选不通过则return,返回默认值
this
调用本类的构造方法
this.成员变量 就是代表方法外,单独类中的成员变量
方法被哪一个对象调用,this就代表哪一个对象
构造方法
给成员变量赋初始值。类和对象都需要构造方法
用来创建对象的特殊方法
构造方法会在创建对象时执行,每创建一个对象都会执行一次。不能通过对象名或方法名直接调用,必须通过new关键字。
有一个this();
给成员变量值
this和super都是调用构造方法,不是调用方法
格式:
权限修饰符 (构造方法名=类名)(参数列表){}
构造方法名和类名相同
构造方法中不能有void或者其他返回值否则就变成普通方法了
如果没有提供构造方法,系统会自动提交一个只有构造方法名,没有参数列表的构造方法
如果提供了构造方法,系统默认不提供空的构造方法
构造代码块
格式
在类中用{}括起来的内容
只要对象创建,就会在对象中调用类中的空的构造方法和构造代码块中的方法。优先于有参数的构造方法。
例如对象创建时创造的方法就会调用
类名 对象名 = new 类名();
继承
子类只能继承父类的全部
所有类都是Object的子类
子类继承的父类的成员变量,只是在子类中的值更改,不影响父类中的值
权限修饰符
protected 中的方法可以在同一个文件夹中使用,或者子类
super
可以在子类中调用父类的构造方法
public class只有一个,class可以有多个在同一文件中。
private 只能在本类中使用
调用的都是构造方法
super.()调用父类的无参构造,super.(" 可以加参数")调用父类的有参构造
super.成员变量。调用父类的成员变量
重载
方法名相同,参数不同,都运行
Alt+insert = 生成get,set方法
子类不能接收父类的对象
this.成员变量
this()调用本类的无参构造