【Java每日一题】——第三十四题:设计一个学生类Student和它的一个子类Undergraduate

简介: 【Java每日一题】——第三十四题:设计一个学生类Student和它的一个子类Undergraduate

🎯问题:


(1)定义学生类Student,定义其成员变量:姓名(String name)、年龄 (int age),定义无参构造方法和带两个参数构造方法,定义以上成员变量对应的getXxx()/setXxx()方法,定义一个show()方法显示Student对象的成员变量信息;


(2)定义本科生类Undergraduate,该类继承Student类,定义其成员变量:学位(String degree),定义无参构造方法和带3个参数的构造方法,定义以上成员变量对应的getXxx()/setXxx()方法,重写父类的show()方法,用于显示Undergraduate对象的成员变量信息;


(3)在测试类Demo中分别创建Student对象和Undergraduate对象,调用它们的show()。测试结果如下:


2f56e72ce9d945dd223001cad1e24136_8c32acefb1ad44d9bf2ec7d8df5fa8c4.png


🎯 答案:

package file3;
class Student {
  private String name;
  private int age;
  public Student() {
    super();
  }
  public Student(String name, int age) {
    super();
    this.name = name;
    this.age = age;
  }
  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 void show() {
    System.out.println("姓名:"+name);
    System.out.println("年龄:"+age);
  }
}
class Undergraduate extends Student{
  private String degree;
 
  public Undergraduate() {
    super();
  }
  public Undergraduate(String name, int age, String degree) {
    super(name, age);
    this.degree = degree;
  }
  
  public String getDegree() {
    return degree;
  }
  public void setDegree(String degree) {
    this.degree = degree;
  }
  @Override
  public void show() {
    // TODO Auto-generated method stub
    System.out.println("姓名:"+getName());
    System.out.println("年龄:"+getAge());
    System.out.println("学位:"+getDegree());
  }
}
 
public class StudentTest {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Student st1=new Student("冯绍峰",23);
    Undergraduate un1=new Undergraduate("赵丽颖",27,"学士");
    st1.show();
    System.out.println("-----------------");
    un1.show();
  }
}

💛废话文学:

Java的优势:

跨平台性: Java是一种跨平台的编程语言,即一次编写,到处运行。Java程序在不同的操作系统上具有很高的移植性,这使得开发人员能够通过Java开发应用程序,无需担心底层操作系统的差异。


面向对象: Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这种编程范式使得代码可以更加模块化、可重用,并且有助于提高代码的可维护性和可扩展性。


强大的生态系统: Java拥有丰富的标准库和第三方库,提供了各种功能强大的工具和框架,如Spring、Hibernate和JUnit等。这些工具和框架使得Java开发人员能够更加高效地开发应用程序,并提供了解决特定问题的解决方案。


多线程支持: Java内置了对多线程编程的支持,使得开发人员可以轻松地创建并发应用程序。多线程编程可以有效地利用多核处理器的性能,并提高程序的响应速度和吞吐量。


安全性: Java拥有严格的安全机制,包括字节码验证、安全管理器和安全沙箱等,可以防止恶意代码对系统的破坏。这使得Java成为开发安全性要求较高的应用程序的理想选择。

相关文章
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
164 57
|
14天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
66 8
|
2月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
79 17
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
140 4
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
87 2
|
2月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
74 4
|
2月前
|
存储 Java 编译器
java wrapper是什么类
【10月更文挑战第16天】
49 3
|
2月前
|
Java Android开发
Eclipse 创建 Java 类
Eclipse 创建 Java 类
31 0