创建类

创建类

类的定义就是创建类。通过 class 关键字可以定义自己的数据类型,将属性和行为封装在一起。

示例代码

package V060;

public class Test {

    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "张三";
        s1.age = 20;
        s1.local = "北京";
        s1.study();
        s1.introduce();

        Student s2 = new Student();
        s2.name = "李四";
        s2.age = 21;
        s2.local = "上海";
        s2.study();
        s2.introduce();

        Student s3 = new Student();
        s3.introduce(); // 王五,未赋值,直接调用自我介绍
    }
}

class Student {
    String name;
    int age;
    String local;

    void study() {
        System.out.println(name + "正在学习");
    }

    void introduce() {
        System.out.println("大家好,我叫" + name + ",今年" + age + "岁,来自" + local);
    }
}

class Grade {
    String name;
    int number;
}Code language: JavaScript (javascript)

输出结果:

大家好,我叫张三,今年20岁,来自北京
大家好,我叫李四,今年21岁,来自上海
大家好,我叫null,今年0岁,来自null

类的定义结构

class Student {
    // 成员变量(属性)
    String name;
    int age;
    String local;

    // 成员方法(行为)
    void study() {
        System.out.println(name + "正在学习");
    }

    void introduce() {
        System.out.println("大家好,我叫" + name + ",今年" + age + "岁,来自" + local);
    }
}Code language: JavaScript (javascript)
组成部分说明
class Student定义 Student 类
String name姓名属性
int age年龄属性
String local籍贯属性
study()学习行为
introduce()自我介绍行为

对象的创建与使用

Student s1 = new Student(); // 创建张三
s1.name = "张三";
s1.age = 20;
s1.local = "北京";
s1.introduce();

Student s3 = new Student(); // 创建王五,未赋值
s3.introduce();             // 成员变量使用默认值Code language: JavaScript (javascript)
操作说明
new Student()在堆中创建对象,成员变量赋予默认值
s1.name = "张三"通过对象引用给成员变量赋值
s1.introduce()调用成员方法

成员变量的默认值

数据类型默认值
int0
double0.0
booleanfalse
String 及所有引用类型null

王五未赋值直接调用 introduce(),输出 name=null, age=0, local=null。

引用类型作为成员变量

class Student {
    String name;
    int age;
    Grade g; // Grade 是另一个类,作为成员变量
}

class Grade {
    String name;
    int number;
}Code language: JavaScript (javascript)
要点说明
引用类型成员默认值为 null
使用前需赋值s1.g = new Grade(); 否则调用 g.name 会抛 NullPointerException
关联关系Student 包含 Grade,体现对象之间的组合关系

注意事项

要点说明
一个文件多个类一个 .java 文件中可定义多个类,但只能有一个 public 类
public 类名必须与文件名一致
成员变量未赋值有默认值,不会编译错误,但逻辑上可能输出 null
方法体为空定义了方法但未写代码,调用时什么都不做

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注