类的创建
类
含义:
自定义类型
通过事物的共同特征批量创建相同特征的事物(对象)
减少了代码的复用
声明:
按以下顺序包含以下组件:
-
访问修饰符:开放public/缺省/private私有,和其他修饰符(私有修饰符只能应用于嵌套类)
- 特殊修饰符(可选):final/abstract
-
类关键字
-
类名,首字母大写加变量命名规则,公共类的类名必须与文件名相同
-
类的父类的名称(如果有),前面是关键字 extend。一个类只能继承一个父类
-
由类实现的接口的逗号分隔列表(如果有),前面是关键字 implements。一个类可以实现多个接口
-
类主体,用大括号括起来,{}
public class Test00 extends Test01 implements Test02, Test03{
//类主体
}
属性:
含义:
属性相当于在类中定义的全局变量
通过类创建的对象带有属于对象独有的属性(变量)
实现了对象的个体性
变量分类:
整个类中的变量 - 属性
方法或代码块中的变量 - 局部变量
方法声明中的变量 - 参数(形式参数、实际参数)
局部变量或方法中的参数可以和属性同名,使用相同参数名默认为局部变量或方法中的参数(就近原则),属性需通过this.属性名调用
注:这样会降低代码的可读性,通常只在构造函数和特定方法中使用
声明:
按以下顺序包含以下组件:
1、访问修饰符:public/protected/默认/private (基于封装思想,通常设为private,想要访问需要添加公共的方法)
2、特殊修饰符(可选):final/static/volatile(原子性)/transient(流)
3、属性类型
4、属性名:变量命名规则
public class Student {
public short age;
protected String name;
char gender;
private int salary;
}
方法:
含义:
通过将一段代码进行封装,使它能在多处使用
降低复杂度,代码重用
声明:
访问修饰符:public/protected/默认/private
特殊修饰符(可选):final/static/abstract
返回类型
方法名:变量命名规则(构造方法需和类完全相同),第一个单词应该是动词
括号中的参数列表:参数类型 形式参数名,多个参数用", "连接。
(注:给方法中传递基本数据类型时对参数值修改的操作只存在于方法内部,出方法后参数值消失,传递参数时相当于实际参数赋值给形式参数,引用类型则会带出方法外部,因为引用类型是传递的地址)
大括号中的方法体
返回值:return 与返回类型相同的值,return能直接跳出方法体,不再执行后面的内容,当void返回类型时可不写return,默认return;
public final int study(int time){
return 0;
}
重载:
含义:
方法名相同的不同方法
重载会使代码可读性降低
可以为方法提供默认参数
什么是不同方法:
参数类型不同
参数数量不同
不同类型参数的顺序不同
分类:
自定义方法:
含义:
对所需重用的代码进行封装
为对象添加行为
语法:
访问修饰符 特殊修饰符 返回类型 方法名(参数列表/动态参数){}
动态参数:相同类型的多个参数 语法:数据类型...参数名,在方法中当作数组处理
一般参数列表三个以上相同类型用动态参数,不同类型用类封装,一个方法只能有一个动态参数,且必须放在参数列表后
返回值一个以上用数组或封装类传出
入口方法:
含义:
程序运行的入口
一个工程至少一个入口方法
语法:
语法固定不能改变
public static void main(String[] args){}
构造方法:
含义:
用于创建对象,给没有初始化的属性赋值(没有初始化时属性为默认值)
为属性赋值:this.属性名 = 传入参数 this相当于当前对象,如果传入形参与属性名不相同,则不需要this,可直接赋值
无参构造:无参数传递的构造方法
每个类至少一个构造方法,当无构造函数时,编译器默认无参构造(访问修饰符默认public),但有构造函数时(有参构造函数),编译器不会自己创建无参构造,需要自己创建
支持重载,当重载时对于原构造方法已经初始化的参数
创建权限:通过访问修饰符可限制部分类创建对象
语法:
没有返回类型,不是void,void也算一种返回类型
方法名必须与类名相同,首字母大写
public Student(short age, String name, char gender){
this.age = age;
this.name = name;
this.gender = gender;
}
对象
相当于创建一个指定类(类型)的变量,可以使用该类的方法,也有自己的一个或多个参数
创建对象(实例化类)
对象声明:
类名 对象名;
对象初始化:
对象名 = new 构造方法(构造方法所需参数);
直接声明并初始化:
类名 对象名 = new 构造方法(构造方法所需参数);
static class A{
private int a;
public A(int a) {
this.a = a;
}
}
public static void main(String[] args) {
//声明:
A a1;
//初始化:
a1 = new A(10);
//直接声明并初始化
A a2 = new A(20);
}
使用对象
对象名.属性:
访问权限够则可以访问对应属性的值
对象名.方法(参数列表):
访问权限够则可以调用对应方法
static class B{
int b = 1;
void runB(int a){
System.out.println("runB被执行,传入参数为:"+a);
}
}
public static void main(String[] args) {
B b1 = new B();
//使用类中方法
b1.runB(10);
//使用类中属性
System.out.println("b1.b为:"+b1.b);
}
对象销毁(垃圾回收)
垃圾回收:
java运行环境判断不再使用对象后会删除对象,释放内存
显式删除:
当不再引用某个对象时,可将对象赋值为null来显式删除对象的引用

浙公网安备 33010602011771号