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
Circle(double r ) //创建Circle对象时将半径初始化为r
3) 三个成员方法
double getArea() //获取圆的面积
double getPerimeter() //获取圆的周长
void show() //将圆的关径、周长、面积输出到屏幕
(2) 编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:
1) 一个成员变量,double hight (私有,浮点型); //圆柱体的高;
2) 构造方法
//创建Cylinder对象时将半径初始化为r,高度初始化为h
Cylinder(double 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();
}
}
输出结果: