类(Class)是由构造函数、属性和行为构成,属性是成员变量,行为是成员方法,类是对象的具体描述,可以通过构造函数创建对象。
类的声明
声明格式:
[访问权限修饰符] Class 类名 {}
说明:
- 访问权限修饰符:public、default(缺省)。
示例:
Class Demo {
//成员变量
int size = 3;
//成员方法
public static void test() {
//方法体
//局部变量
int price = 5;
}
}
没有访问权限修饰符,默认是default,可以省略不写。
构造函数
构造函数也称为构造方法,方法名与类名相同,当创建类的时候就已经存在,默认隐式存在,主要用来创建对象和初始化对象使用。
声明格式:
[访问权限修饰符] 构造函数名([形参]) {}
访问权限修饰符默认是default,默认是无参。
注意:当构造函数访问权限修饰符是private修饰时,不能直接new创建对象,需要当前类提供一个公开的实例化方法创建对象。
示例:
public class Person {
private int age;
private String name;
Person() {
System.out.println("无参构造");
}
Person(int age) {
this.age = age;
System.out.println("有参构造");
}
private Person(int age, String name) {
this.age = age;
this.name = name;
System.out.println("私有化有参构造");
}
//公开的实例化方法
public Person getInstance(int age, String name) {
return new Person(age, name);
}
}
成员变量
在方法外,类内声明的变量称为成员变量,有默认值,可以不初始化值。
声明格式:
[访问权限修饰符] [关键字修饰] 变量类型 变量名;
说明:
- 访问权限修饰符(可选):private、public、default(默认)、protected等。
- 关键字修饰(可选):static、final等。
- 变量类型:基本类型和引用类型。
- 变量名:见名知意(命名规范参考)。
是否被其他修饰:
修饰符 | 被修饰 | 不被修饰 |
---|---|---|
final | 常量 | 变量 |
static | 类变量(通过类访问) | 实例变量(通过对象访问) |
注意:是否static修饰的变量加载进内存的顺序不一样,比对象优先加载进内存,后面会单独说,暂时了解一下。
示例:
public final int maxSize = 10; //常量maxSize
成员方法
方法是类或对象行为特征的抽象,用来完成某个功能操作,在某些语音中也称为函数或过程。
声明格式:
[访问权限修饰符] [关键字修饰] 返回值类型 方法名(形参列表) {
//方法体;
}
说明:
- 访问权限修饰符(可选):private、public、default(默认)、protected等。
- 关键字修饰(可选):static、final等。
- 返回值类型:void、基本类型和引用类型(非void返回值必须要return返回值)。
- 方法名:见名知意(命名规范参考)。
- 形成列表(可选):可有可无,若有调用时必须传入相应类型的形参。
将功能封装为方法的目的是可以实现代码的重用,简化代码,提高可扩展性。
注意事项:
- Java中方法不能独立存在,所有的方法必须定义在类(接口)里,方法中不可以定义方法。
- 方法被调用一次,就会执行一次,没有具体返回值的情况,返回值类型用关键字void表示,那么方法中可以不必须return语句,如果使用,仅用来结束方法。
- 方法的使用中,可以调用当前类的属性或方法。
示例:
//公共静态无返回值且无参数的test方法
public static void test() {
//方法体
}
return关键字
使用范围:方法体中。
作用:结束方法或返回指定类型的返回值。
注意:return关键字后面不可以有其他执行语句(因为方法结束,return后面的语句永远不会执行)。
示例:
//当形参数值大于10时,结束方法
public void test(int param) {
if(param > 10) {
return;
}
System.out.println("DemoTest.test");
}