1.创建一个你所理解的学生类(Student), 至少含有3个属性,需体现出封装思想,必须含有study方法.
2.在上一题的基础上创建本科生类(Undergraduate), 继承学生类,重写study方法(study方法中输出“我爱Java”),并在main方法中调用。
public class Student {
private String name;
private int age;
private String sex;
// 构造方法
public Student(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex= sex;
}
// 封装属性的访问方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex= sex;
}
public void study() {
System.out.println("学生正在学习...");
}
}
public class Undergraduate extends Student {
// 构造方法
public Undergraduate(String name, int age, String sex) {
super(name, age, sex);
}
// 重写study方法
@Override
public void study() {
System.out.println("我爱Java");
}
}
public class Main {
public static void main(String[] args) {
Student student = new Student("张三", 20, "男");
student.study();
Undergraduate undergraduate = new Undergraduate("李四", 25, "男");
undergraduate.study();
}
}
gpt
// 学生类(Student)
public class Student {
private String name; // 姓名,私有属性
private int age; // 年龄,私有属性
private String gender; // 性别,私有属性
// 构造方法
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// 获取姓名
public String getName() {
return name;
}
// 获取年龄
public int getAge() {
return age;
}
// 获取性别
public String getGender() {
return gender;
}
// 学习方法
public void study() {
System.out.println("我正在学习...");
}
}
// 本科生类(Undergraduate)继承自学生类(Student)
public class Undergraduate extends Student {
// 构造方法
public Undergraduate(String name, int age, String gender) {
super(name, age, gender);
}
// 重写学习方法
@Override
public void study() {
System.out.println("我爱Java");
}
// main方法
public static void main(String[] args) {
Undergraduate undergraduate = new Undergraduate("张三", 20, "男");
System.out.println("姓名:" + undergraduate.getName()); // 获取姓名
System.out.println("年龄:" + undergraduate.getAge()); // 获取年龄
System.out.println("性别:" + undergraduate.getGender()); // 获取性别
undergraduate.study(); // 调用学习方法
}
}
package net.hw.lesson10;
/**
* 功能:学生类
* 演示重载
* 作者:华卫
* 日期:2020年4月28日
*/
public class Student {
private String name;
private int character;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCharacter() {
return character;
}
public void setCharacter(int character) {
if (character >= 1 && character <= 10) {
this.character = character;
} else {
System.err.println("人品值必须介于[1, 10]之间!");
}
}
public void speak() {
if (character >= 1 && character <= 10) {
System.out.println("嗨, 我叫" + name + ",人品值:" + character);
}
}
/**
* @param cat
*/
public void feed(Cat cat) {
System.out.println(name + "喂养了一只猫,名叫" + cat.getName() + ",现在" + cat.getAge() + "岁了。");
cat.eat();
}
/**
* @param dog
*/
public void feed(Dog dog) {
System.out.println(name + "喂养了一条狗,名叫" + dog.getName() + ",现在" + dog.getAge() + "岁了。");
dog.eat();
}
/**
* @param bird
*/
public void feed(Bird bird) {
System.out.println(name + "喂养了一只鸟,名叫" + bird.getName() + ",现在" + bird.getAge() + "岁了。");
bird.eat();
}
}
学生类需要包含至少三个属性,一般情况下可以选择学号(id)、姓名(name)、年龄(age)、成绩(score)等等。建议选择id、name和score这三个属性进行封装,其中score可以拆分为操作系统成绩(operatingScore)、Java成绩(javaScore)和高数成绩(mathScore)三个属性进行封装。
封装思想:将属性私有化,提供getter和setter方法进行访问。
具体实现如下:
public class Student {
private int id;
private String name;
private float operatingScore;
private float javaScore;
private float mathScore;
public Student(int id, String name, float operatingScore, float javaScore, float mathScore) {
this.id = id;
this.name = name;
this.operatingScore = operatingScore;
this.javaScore = javaScore;
this.mathScore = mathScore;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getOperatingScore() {
return operatingScore;
}
public void setOperatingScore(float operatingScore) {
this.operatingScore = operatingScore;
}
public float getJavaScore() {
return javaScore;
}
public void setJavaScore(float javaScore) {
this.javaScore = javaScore;
}
public float getMathScore() {
return mathScore;
}
public void setMathScore(float mathScore) {
this.mathScore = mathScore;
}
public void study() {
// 学习的具体方法实现
}
}
Undergraduate类需要继承Student类,并重写study方法,在study方法中输出“我爱Java”,具体实现如下:
public class Undergraduate extends Student {
public Undergraduate(int id, String name, float operatingScore, float javaScore, float mathScore) {
super(id, name, operatingScore, javaScore, mathScore);
}
@Override
public void study() {
System.out.println("我爱Java");
}
}
在main方法中,我们可以创建Undergraduate类的对象,并调用它的study方法,代码如下:
public static void main(String[] args) {
Student student = new Undergraduate(1, "张三", 80, 90, 85);
student.study();
}