PTA 面向对象(Java)

1.构造方法 (15 分)

请补充以下代码,完成输出要求。

public class Main {
   
    public Main(){
   
        System.out.println("构造方法一被调用了");
    }
    public Main(int x){
   
        this();
        System.out.println("构造方法二被调用了");
    }
    public Main(boolean b){
   
        this(1);
        System.out.println("构造方法三被调用了");
    }
    public static void main(String[] args) {
   

    }
}

输入格式:

输出格式:
输出以下三行: 构造方法一被调用了 构造方法二被调用了 构造方法三被调用了

输入样例:

输出样例:
构造方法一被调用了
构造方法二被调用了
构造方法三被调用了

public class Main {
   
    public Main(){
   
        System.out.println("构造方法一被调用了");
    }
    public Main(int x){
   
        this();
        System.out.println("构造方法二被调用了");
    }
    public Main(boolean b){
   
        this(1);
        System.out.println("构造方法三被调用了");
    }
    public static void main(String[] args) {
   
        Main a=new Main(true);
    }
}

2.学生类-构造函数 (15 分)

定义一个有关学生的Student类,内含类成员变量: String name、String sex、int age,所有的变量必须为私有(private)。

1.编写有参构造函数: 能对name,sex,age赋值。

2.覆盖toString函数:

按照格式:类名 [name=, sex=, age=]输出。使用idea自动生成,然后在修改成该输出格式

3.对每个属性生成setter/getter方法

4.main方法中

•输入1行name age sex , 调用上面的有参构造函数新建对象。

输入样例:

tom 15 male

输出样例:

Student [name=‘tom’, sex=‘male’, age=15]

import java.util.Scanner;

class Student {
   
    private String name;
    private String sex;
    private int age;

    public Student(String name, String sex, int age) {
   
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public String toString() {
   
        return "Student [name='" + name + "', sex='" + sex + "', age=" + age+"]";
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public String getSex() {
   
        return sex;
    }

    public void setSex(String sex) {
   
        this.sex = sex;
    }

    public int getAge() {
   
        return a
### 关于PTA平台中面向对象思想中的多态概念 #### 定义与理解 多态是指允许不同子类型的对象通过相同的接口执行不同的行为。这种机制使得调用者无需关心具体实现细节,只需关注公共接口即可[^1]。 #### 示例说明 为了更好地展示这一特性,在`jmu-Java-03面向对象基础-04-形状-继承`题目背景下可以构建如下场景: 假设存在一个抽象基类 `Shape` ,它包含了两个纯虚函数用于计算周长和面积,并声明了一个不可变静态成员变量表示圆周率π=3.14 。接着创建多个派生自该基类的具体图形类如矩形(Rectangle),圆形(Circle)等,各自实现了上述提到的方法。 当编写一段通用代码遍历一组未知确切类型的 Shape 对象列表并依次打印它们各自的周长及面积时,即使这些实例属于不同类型(即 Rectangle 或 Circle),只要遵循共同的接口约定,则能够自动调用对应版本的方法完成相应功能——这就是所谓的运行时期绑定或多态性的体现。 ```java // 抽象类 Shape 的定义 abstract class Shape { public static final double PI = 3.14; // 声明获取周长的方法为抽象方法 abstract public double getPerimeter(); // 声明获取面积的方法也为抽象方法 abstract public double getArea(); } class Rectangle extends Shape{ private double width, height; public Rectangle(double w, double h){ this.width=w;this.height=h; } @Override public double getPerimeter(){ return (width+height)*2 ; } @Override public double getArea(){ return width*height; } } class Circle extends Shape{ private double radius; public Circle(double r){ this.radius=r; } @Override public double getPerimeter(){ return 2 *PI*radius; } @Override public double getArea(){ return PI*(Math.pow(radius,2)); } } ``` 以上展示了如何利用 Java 中的多态性质来处理具有相同超类型的不同实体之间的差异性操作方式[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值