例子1

1、编写一个Java应用程序,该程序包括3个类:Monkey类、People类和测试类。要求:
(1)Monkey类中有个public void speak()方法,在speak方法中输出“咿咿呀呀。。。。。。”的信息。
(2)People类是Monkey类的子类,在People类中重写方法speak,在speak方法中输出“小样的,不错嘛,会说话了!”的信息。
(3)在People类中新增方法void think(),在think方法中输出“别说话,认真思考!”的信息。

/**
 * Monkey 父类
 */
package cn.yjlblog.www;

public class Monkey
{
    public void speak()
    {
        System.out.println("咿咿呀呀。。。。。。");
    }
}

/**
 * People 子类
 */
package cn.yjlblog.www;

public class People extends Monkey
{

    public void speak()
    {
        System.out.println("小样的,不错嘛,会说话了!");// TODO Auto-generated method stub

    }
    void think()
    {
        System.out.println("别说话,认真思考!");
    }
}

/**
 * TestClass 测试类
 */
package cn.yjlblog.www;

public class TestClass {
    public static void main(String[] args) {

        Monkey m = new Monkey();
        m.speak();
        Monkey p = new People();
        p.speak();
        //Monkey p1 = new People();//The method think() is undefined for the type Monkey
        People p1 = new People();
        p1.think();

    }

}

例子2

2、按要求编写一个Java应用程序:
(1)定义一个类(Rectangle),描述一个矩形,包含有长、宽两种属性和计算面积的方法。
(2)定义一个类(Cuboid),继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。

/**
 * Rctangle 父类
 */
package cn.yjlblog.www;

public class Rectangle
{
    private double length;
    private double width;

    //生成set 和get 方法
    public double getLength() {
        return length;
    }
    public void setLength(double length) {
        this.length = length;
    }
    public double getWidth() {
        return width;
    }
    public void setWidth(double width) {
        this.width = width;
    }

    //构造含有参数的方法
    public Rectangle(double length, double width) {

        this.length = length;
        this.width = width;
    }

    //求面积
    public double Aera()
    {
        return length * width;
    }

}

/**
 * Cuboid 子类
 */
package cn.yjlblog.www;

public class Cuboid extends Rectangle
{
    private double height;
    private double volume;

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public double getVolume() {
        return volume;
    }

    public void setVolume(double volume) {
        this.volume = volume;
    }

    public Cuboid(double length, double width, double height) {
        super(length, width);
        this.height = height;

    }

}

/**
 * TestClass 测试类
 */
package cn.yjlblog.www;

public class TestClass {
    public static void main(String[] args) {

        Cuboid rct = new Cuboid(10,20,30);
        double v = rct.Aera()*rct.getHeight();
        double s = rct.Aera();
        System.out.println("The Rctangle's volume is:"+v);
        System.out.println("The Rctangle's floor space is:"+s);

    }

}

运行结果

The Rctangle's volume is:6000.0
The Rctangle's floor space is:200.0

在这个例子中,我觉的并没有实现题目中的效果...enmmmm,以为题目中(2)中说,要求写出计算体积的方法,但是在Cuboid中不会写......于是把体积 的计算方法写在了测试类中....

例子3

3、按要求编写一个Java应用程序:
(1)编写一个Shape类,具有属性周长(perimeter)和面积(area);
(2)定义其子类三角形(Triangle)和矩形(Rectangle),分别具有求周长和面积的方法。
(3)定义测试类,在其main方法中创建三角形和矩形类的对象,并赋给Shape类的对象a和b,使用对象a、b来测试其特性。

/**
 * Shape 父类
 */
package cn.yjlblog.www;

public class Shape {

    private double perimeter;
    private double area;
    //get set 方法
    public double getPerimeter() {
        return perimeter;
    }
    public void setPerimeter(double perimeter) {
        this.perimeter = perimeter;
    }
    public double getArea() {
        return area;
    }
    public void setArea(double area) {
        this.area = area;
    }
    //构造方法
    public Shape(double perimeter, double area) {

        this.perimeter = perimeter;
        this.area = area;
    }

    }

  /**
 * Triangle 子类
 */
package cn.yjlblog.www;

public class Triangle extends Shape {

    public Triangle(double perimeter, double area) {
        super(perimeter, area);
        // TODO Auto-generated constructor s

    }
    private double a1;
    private double a2;
    private double a3;
    //set get 方法
    public double getA1() {
        return a1;
    }
    public void setA1(double a1) {
        this.a1 = a1;
    }
    public double getA2() {
        return a2;
    }
    public void setA2(double a2) {
        this.a2 = a2;
    }
    public double getA3() {
        return a3;
    }
    public void setA3(double a3) {
        this.a3 = a3;
    }

    public double perimeter()
    {
        return a1+a2+a3;
    }
    public double  area()
    {
        double s1=(a1+a2+a3)/2;
        double s2 = s1*(s1-a1)*(s1-a2)*(s1-a3);
        double result = Math.sqrt(s2);
        return result;
    }

}

package cn.yjlblog.www;

/**
 * Rectangle 子类
 */
public class Rectangle extends Shape{

    public Rectangle(double perimeter, double area) {
        super(perimeter, area);
        // TODO Auto-generated constructor stub
    }
    private double b1;
    private double b2;

    public double getB1() {
        return b1;
    }
    public void setB1(double b1) {
        this.b1 = b1;
    }
    public double getB2() {
        return b2;
    }
    public void setB2(double b2) {
        this.b2 = b2;
    }

    public double perimeter()
    {
        return (b1+b2)*2;
    }
    public double  area()
    {

        return b1*b2;
    }

}

/**
 * TestClass 测试类
 */
package cn.yjlblog.www;

public class TestClass {
    public static void main(String[] args) {

        Triangle a = new Triangle(0, 0);
        a.setA1(3);
        a.setA2(4);
        a.setA3(5);

        System.out.println(a.perimeter());
        System.out.println(a.area());

        Rectangle b = new Rectangle(0, 0);
        b.setB1(3);
        b.setB2(4);
        System.out.println(b.perimeter());
        System.out.println(b.area());

    }

}

运行结果

12.0 //三角形周长
6.0  //三角形面积
14.0  //长方形周长
12.0  //长方形面积

这个题目总感觉自己的父类没有用上...enmmm..可能自己的关于java的语法还是.....再想想。

java中类之间的关系之封装、继承与多态的几个例子的更多相关文章

  1. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中, ...

  2. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现(转)

    UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现   类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统 ...

  3. UML中类之间的关系

    UML中类之间的关系分为以下几种:依赖.关联.泛化.聚合.组合. 依赖是指一个类使用了另一个类,它是一种使用关系,描述了一个事物的规格说明的变化可能会影响到使用它的另一个事物(反之不一定).最常见的依 ...

  4. 关于CPU核心,线程,进程,并发,并行,及java线程之间的关系

    前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系, 1.CPU角度来看: 我们以Intel的Core i ...

  5. 附:常见的Jdbc Type 与 Java Type之间的关系

    附:常见的Jdbc Type 与 Java Type之间的关系 JDBC Type Java Type CHAR                  String VARCHAR String LONG ...

  6. day33 序列类型,绑定方法,类方法,静态方法,封装继承和多态

    Python之路,Day20 = 序列类型,绑定方法,类方法,静态方法,封装继承和多态 序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主要 ...

  7. java 学习笔记——类之间的关系之封装、继承与多态的详解

    封装 一个封装的简单例子 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联 ...

  8. java封装继承以及多态(含代码)

    封装 该露的露,该藏的藏 我们常需设计要追求,"高内聚,低耦合".高内聚就是类的内部数据操作细节自己完成.不允许外部干涉:低耦合:仅暴漏少量的方法给外部使用. 封装(数据的隐藏) ...

  9. 【转】UML图中类之间的关系

    原文:http://blog.csdn.net/hguisu/article/details/7609483   类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相 ...

随机推荐

  1. 对Java的数据类型和运算符的理解

    我知道千里之行始于足下,包含着对编程的兴趣,希望能够在这个平台上记录下我学习过程中的点点滴滴! Java的基本构造 标识符和关键字 标识符规则 标识符就是用于给程序中变量,类.方法命名的符号 1.标识 ...

  2. 使用jquery.form.js提交表单上传文件

    方法: 1.formSerilize()  用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式. 2.clearForm()   清除表单中所有输入值的内容. 3.restF ...

  3. memcached常用命令

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt104 一.Memcache面向对象的常用接口包括:Memcache::con ...

  4. KVM虚拟化主机安装

    KVM虚拟化主机安装 最小化安装CentOS6.X或者CentOS7.X,RHEL6.X以上系列建议建议选择安装最小虚拟化主机 如果要安装桌面可以先选择最小化虚拟主机,再选择Gnome桌面包 安装过程 ...

  5. 团队作业4——第一次项目冲刺(Alpha版本)第五天

    天气阴转晴 一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 1.界面 功能界面已经大致完成 实现判断学生答题正误的界面 2.出题方面 实现错题库的构造 四.困难与问题 1.项 ...

  6. 201521123062《Java程序设计》第8周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 for (int i = 0; i < list.size(); ...

  7. 201521123065《Java程序设计》第1周学习总结

    1. 本周学习总结 java是门语言较为简单,并且可以在多种平台运行编译的语言. JDK是java开发工具,可以将源程序编译成字节码. JRE:java运行环境. JVM:虚拟机,是java实现多平台 ...

  8. centos7配置dhcp

    用su 获取root权限 用yum -y install dhcp命令安装dhcp服务(yum是基于RPM包管 理,自动下载RPM包并且安装) 查看安装后生成的配置文件 rpm -qc dhcp 编辑 ...

  9. 浅谈JAVA中“增强”类的某个方法的几个中方法!

    一.继承 使用场景:能够控制这个类的构造的时候,才可以使用继承. 优点:简单容易使用, 缺点:耦合性大大的增强,不利于后期的维护,所以对于继承这种方法,谨慎使用.  代码实现:二.装饰者模式 使用场景 ...

  10. js对象详解(JavaScript对象深度剖析,深度理解js对象)

    js对象详解(JavaScript对象深度剖析,深度理解js对象) 这算是酝酿很久的一篇文章了. JavaScript作为一个基于对象(没有类的概念)的语言,从入门到精通到放弃一直会被对象这个问题围绕 ...