面向对象的三大特征:继承,封装,多态
2017-07-24 20:30
579 查看
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();
}
}
输出结果:
![](https://img-blog.csdn.net/20170724211151079?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHluNzg5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
方法重载:在同一个类中,方法名相同,方法的参数类型不同(类型,顺
序,个数)
方法重写:在子父类之间,子类的方法名,返回值和参数列表同父类一样
,但是方法体却不同
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();
}
}
输出结果:
相关文章推荐
- OC面向对象的三大特征(封装 继承 多态)习题1
- php 面向对象的三大特征 (封装,继承,多态)
- OC面向对象的三大特征(封装 继承 多态)习题3 多态
- OC面向对象的三大特征 封装 ,继承,多态
- java、面向对象的三大特征封装、继承、多态
- C#学习笔记7:多态是面向对象的三大特征(封装、继承、多态)之一
- java之面向对象三大特征(封装,继承,多态)
- OC面向对象的三大特征(封装 继承 多态)习题2 复合
- php面向对象的三大特征 封装,继承,多态
- 黑马程序员_面向对象的三大特征封装、继承、多态
- java面向对象的三大特征:封装,继承,多态
- 黑马程序员——OC笔记之面向对象三大特征(封装、继承、多态)
- java学习总结(16.06.10~16.06.17)面向对象的三大特征——封装、继承、多态
- 面向对象三大特征------封装、继承、多态
- Java面向对象的三大特征:封装、继承和多态的详解
- java面向对象的三大基本特征之封装,继承,多态
- c++面向对象三大特征封装、继承和多态知识总结
- 那些年一起学过的面向对象之:4 面向对象的三大特征:封装、继承、多态
- c++面向对象三大特征封装、继承和多态知识总结
- java面向对象的三大特征:封装-继承-多态