例子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. Vue双向数据绑定原理解析

    基本原理 Vue.采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter和getter,数据变动时发布消息给订阅者,触发相应函数的回调 ...

  2. Python有哪些高大上的项目?

    ​Python作为程序员的宠儿,得到了越来越多人的关注,使用Python进行应用程序开发的越来也多.那么,Python有哪些高大上的项目?这里有十个: 1.NuPIC 它是一个以HTM学习算法为工具的 ...

  3. Day-8: 面对对象编程

    面对过程的程序设计方法意在将函数分成子函数,再依次调用这些函数来解决问题. 而面对对象的程序设计方法,来源于自然界,类是实例的抽象,实例是类的具体.自定义出来的对象是类,而所有的数据都可以看成是对象, ...

  4. 【小白成长撸】--Fibonacci

    /*程序的版权和版本声明部分: *Copyright(c) 2016,电子科技大学本科生 *All rights reserved. *文件名:Fibonacci *程序作用:计算菲薄拉稀数列 *作者 ...

  5. Rational Rose2013安装及破解教程

    1.下载地址:http://pan.baidu.com/s/1mhKGfHY 2.安装:解压缩文件"[Rational.Rose.Enterprise.Edition.2003].Softw ...

  6. 【★】KMP算法完整教程

    KMP算法完整教程 全称:                               Knuth_Morris_Pratt Algorithm(KMP算法) 类型:                 ...

  7. 2016-2017-2 《Java 程序设计》课堂实践项目

    目录 基本工具 基础内容 Hello World 和 模块分解 数组的使用 命令行参数 递归 分支语句 String类的使用 类的定义与测试 多态 IO与异常 数据库 网络与安全 数据结构应用 And ...

  8. GUI(JTabel表格)

    /** * */ package com.niit.javagui; import java.util.Vector; import javax.swing.ImageIcon; import jav ...

  9. 201521123089 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码1.1 com.parent包中Child.java文件能否编译通过?哪 ...

  10. 201521123011《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...