Java 学生类(Student)设计与封装:实现思路及关键代码

本教程将通过一系列上机练习,引导你逐步理解并掌握Java中类的设计与封装,并以学生类(Student)为例,进行详细讲解。

上机练习1

需求说明

创建Student类,定义姓名属性和年级属性和方法,定义print()方法,定义默认构造方法、有1个参数的构造方法和2个参数的构造方法。

代码示例

public class Student {
    private String name;
    private String grade;

    public Student() {
    }

    public Student(String name) {
        this.name = name;
    }

    public Student(String name, String grade) {
        this.name = name;
        this.grade = grade;
    }

    public void print() {
        System.out.println('姓名:' + name);
        System.out.println('年级:' + grade);
    }
}

编写Test类,根据控制台提示信息选择角色为学生,共需要定义3个学生,输入姓名、年级等信息,创建Student对象并打印对象信息

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        for (int i = 0; i < 3; i++) {
            System.out.println('请输入第' + (i + 1) + '个学生的姓名:');
            String name = scanner.nextLine();

            System.out.println('请输入第' + (i + 1) + '个学生的年级:');
            String grade = scanner.nextLine();

            Student student = new Student(name, grade);
            student.print();
        }
    }
}

上机练习2

需求说明

给Student增加Student (name)构造方法,使用该构造方法创建对象;去掉默认构造方法,分析出现问题的原因。

代码示例

public class Student {
    private String name;
    private String grade;

    public Student(String name) {
        this.name = name;
    }

    public Student(String name, String grade) {
        this.name = name;
        this.grade = grade;
    }

    public void print() {
        System.out.println('姓名:' + name);
        System.out.println('年级:' + grade);
    }
}

**问题分析:**去掉默认构造方法后,如果不提供带参构造方法,就无法创建对象,因为没有可用的构造方法。

上机练习3

需求说明

对Student类的所有属性进行封装,并设定名字不能多于4个字符,年级不能是‘大一、大二、大三’以外的数据。

代码示例

public class Student {
    private String name;
    private String grade;

    public Student(String name) {
        if (name.length() > 4) {
            System.out.println('姓名不能多于4个字符');
        } else {
            this.name = name;
        }
    }

    public Student(String name, String grade) {
        if (name.length() > 4) {
            System.out.println('姓名不能多于4个字符');
        } else {
            this.name = name;
        }

        if (!grade.equals('大一') && !grade.equals('大二') && !grade.equals('大三')) {
            System.out.println('年级只能是“大一、大二、大三”');
        } else {
            this.grade = grade;
        }
    }

    public void print() {
        System.out.println('姓名:' + name);
        System.out.println('年级:' + grade);
    }
}

编写Test类

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println('请输入学生的姓名:');
        String name = scanner.nextLine();

        System.out.println('请输入学生的年级:');
        String grade = scanner.nextLine();

        Student student = new Student(name, grade);
        student.print();
    }
}

通过以上练习,你已经学会了如何创建Student类,并进行属性的封装,以及设置属性值的限定条件。这只是一个简单的例子,但它体现了Java中类的设计和封装的基本思想,希望能够对你有所帮助。

Java 学生类(Student)设计与封装:实现思路及关键代码

原文地址: https://www.cveoy.top/t/topic/pfp9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录