面向对象的三大特征:继承,封装,多态

时间:2023-02-24 17:56:49

1. 方法重载和方法重写(覆盖)的区别。

方法重载:在同一个类中,方法名相同,方法的参数类型不同(类型,顺

序,个数)
方法重写:在子父类之间,子类的方法名,返回值和参数列表同父类一样

,但是方法体却不同

2. java.lang.Object类的六个常用方法的声明并说明其作用。

java.lang.ObjectObject类的6个常用方法:
  · clone()
  · equals()
  ·getclass()
  · finalize()
  ·hashCode()
  · toString()
作用:
Object类是所有类的父类,即直接或间接的继承java.lang.Object类
Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都

会先调用这个默认构造方法。

3. 继承条件下子类构造方法的执行过程

继承:子类是父类的扩展。
子类 extends 父类

4. super关键字的作用和使用

先执行父类的构造方法,后执行子类的构造方法。
父类的静态代码块—>子类的静态代码块—>主方法(执行哪个程序就执行

哪个程序的主方法)—>父类的非静态代码块—>父类的无参构造函数—>子

类的非静态代码块—>子类的无参构造函数(若实际子类执行的是有参构造

函数,则不执行无参构造函数)

5. ==equals()的联系和区别

==可以用来进行基础数据类型值的比较。
引用数据类型==比较的是内存地址是否相等。
equals用来比较两个对象的内容是否相等。



一、 编码题

1. 编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。(7分)

提示:1)编写一个圆类Circle,该类拥有:

1) 一个成员变量radius(私有,浮点型);//存放圆的半径;

2) 两个构造方法

Circle()              //将半径设为0

Circledouble  r     //创建Circle对象时将半径初始化为r

3) 三个成员方法

double getArea()      //获取圆的面积

double getPerimeter()  //获取圆的周长

void show()           //将圆的关径、周长、面积输出到屏幕

2 编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:

1) 一个成员变量,double hight  (私有,浮点型);  //圆柱体的高;

2) 构造方法

//创建Cylinder对象时将半径初始化为r,高度初始化为h

Cylinderdouble r,double h     

3) 成员方法

double getVolume()            //获取圆柱体的体积

void showVolume()             //将圆柱体的体积输出到屏幕


package com.sxt;

public class Circle {
    private double radius;
    public Circle() {
     this.radius=0;
    }
    public Circle(double r) {
        this.radius=r;
    }
    public double getArea(){
        return Math.PI*this.radius*this.radius;
    }
    public double getPerimeter(){
        return Math.PI*this.radius*2;    
    }
    public void show(){
        System.out.println("圆的半径:"+this.radius);
        System.out.println("圆的面积:"+this.getArea());
        System.out.println("圆的周长:"+this.getPerimeter());
    }
}


package com.sxt;

public class Cylinder extends Circle{
    private double hight;
    public Cylinder(double r,double h) {
        super(r);
        this.hight=h;
    }
    public double getVolume(){
        double area=super.getArea();
        return area*hight;
    }
    public void showVolumn(){
        super.show();
        System.out.println("圆的体积:"+this.getVolume());
    }
    public static void main(String[] args) {
        Cylinder c=new Cylinder(10,10);
        c.showVolumn();
    }
}
输出结果:
面向对象的三大特征:继承,封装,多态