类是现实生活中一类具有共同属性和行为的事物的抽象。
类的特点
类的重要性:类是Java程序的基本组成单位。
类的组成:属性和行为
类的定义格式:
public class 类名{
//成员变量
变量1的数据类型 变量1;
变量2的数据类型 变量2;
...
//成员方法
方法1;
方法2;
...
}
创建对象
格式:
类名 对象名 = new 类名();
使用对象
使用成员变量
格式:
对象名.变量名
使用成员方法
格式:
对象名.方法名();
区别 | 成员变量 | 局部变量 |
---|---|---|
类中位置不同 | 类中方法外 | 方法内或者方法声明上 |
内存中位置不同 | 堆内存 | 栈内存 |
生命周期不同 | 随着对象的存在而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 |
初始化值不同 | 有默认的初始化值 | 没有默认的初始化值,必须先定义,赋值,才能使用 |
什么是方法
注意:
方法定义
格式:
public [static] 返回值类型 方法名(数据类型1 变量名1,数据类型2 变量名2,...){
//方法体
return 数据;
}
注意:方法定义时后面的返回值与方法定义上的返回值类型要匹配,否则程序将报错。
方法调用
格式:
数据类型 变量名 = 方法名(变量名/常量值);
注意:方法调用时,参数的数量和类型必须与方法定义中设置相匹配,否则程序将报错。
概述:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载。
注意:
构造方法是一种特殊的方法。
作用:创建对象
格式:
public class 类名{
修饰符 类名(参数){
//构造方法内书写的内容
}
}
功能:主要是完成对象数据的初始化。
成员变量
构造方法
成员方法
创建对象并为其成员变量赋值的两种方式
this关键字
this的作用
继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。
格式:
public class 子类名 extends 父类名{}
继承中子类的特点:
继承的用途:一般用于多个类中具有相同的特征(属性和方法),将相同的特征提取出来作为父类,然后多个类再继承父类相同的特征。
好处:
弊端:
super关键字的用法和this关键字的用法相似
关键字 | 访问成员变量 | 访问构造方法 | 访问成员方法 |
---|---|---|---|
this | this.成员变量访问本类成员变量 | this(...)访问本类构造方法 | this.成员方法(...)访问本类成员方法 |
super | super.成员变量访问父类成员变量 | super(...)访问父类构造方法 | super.成员方法(...)访问父类成员方法 |
子类中所有的构造方法默认都会访问父类中的无参构造方法。
原因:
super();
当父类中没有无参构造方法,只有带参构造方法时,有两种解决方案:
概述
应用
@Override
重写方法格式一般为:
public class Fu{
public void show(){
int f = 0;
System.out.println("f的值为:" + f);
}
}
public class Zi extends Fu{
public void show(){
System.out.println("调用子类的show方法");
super(); // 当子类重写方法是在父类方法上添加功能时,可以在添加功能后直接调用super();
}
}
成员变量:编译看左边,执行看左边
成员方法:编译看左边,执行看右边
成员变量与成员方法访问特点不一样原因
好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体子类型参与操作
弊端:不能使用子类的特有功能
向上转型
从子到父
父类引用指向子类对象
格式:
Fu f = new Zi();
向下转型
从父到子
父类引用转为子类对象
格式:
Zi z = (Zi) f;
概述:包其实就是文件夹
作用:对类进行分类管理
包的定义格式:
package 包名; (多级包用.分开)
带包的Java类编译和执行
手动建包
自动建包
javac -d . xxx.java
概述:使用不同包下的类时,使用时要写类的全路径,为了简化带包操作,Java提供了导包功能。
格式:
import 包名.类名;
修饰符 | 同一个类中 | 同一个包中子类、无关类 | 不同包的子类 | 不同包的无关类 |
---|---|---|---|---|
private | ✔ | |||
默认 | ✔ | ✔ | ||
protected | ✔ | ✔ | ✔ | |
public | ✔ | ✔ | ✔ | ✔ |
概述:final关键字是最终的意思,可以修饰成员方法,成员变量,类。
final修饰的特点
final修饰局部变量
概述:static关键字是静态的意思,可以修饰成员方法,成员变量。
static修饰的特点
static访问特点