例子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. ios 初体验<真机调试>

    1.很多小伙伴,初学ios后面,都想迫不及待的连接上真机,在真机上调试,本人今天花了许久时间,在网上查了许多资料,一直出现了个问题导致我没法真机调试, 问题一:Your session has exp ...

  2. 基于CAS的SSO(单点登录)实例

    第一步 部署CAS-Server(服务端) 1.从CAS官方网站(http://developer.jasig.org/cas/)下载最新版本的CAS-Server(当前最新版本cas-server- ...

  3. [Vue安装教程]十分钟学会vue 安装

    Vue的安装主要有一下几个步骤: 1.安装npm淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 2.安装脚手架工 ...

  4. wait与sellp方法区别

    Java Thread(线程)案例详解sleep和wait的区别    上次对Java Thread有了总体的概述与总结,当然大多都是理论上的,这次我将详解Thread中两个常用且容易疑惑的方法.并通 ...

  5. 转:【Java集合源码剖析】Java集合框架

    转载轻注明出处:http://blog.csdn.net/ns_code/article/details/35564663   Java集合工具包位于Java.util包下,包含了很多常用的数据结构, ...

  6. 第二次项目冲刺(Beta阶段)--第七天

    一.站立式会议照片 二.项目燃尽图 三.项目进展 codingnet:https://git.coding.net/tuoxie/chachong-beta.git 1.对项目进行全面的测试 2.继续 ...

  7. 201521123097《Java程序设计》第八周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 1.本次作业题集集合 public static List return str; } pub ...

  8. 201521123069 《Java程序设计》 第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind List列表:元素以线性方式存放,允许有重复的对象. Set集:集合中的对象不按特定的方式排序,并且 ...

  9. for /r命令实现全盘搜索指定文件

    @echo off Rem :全盘搜索指定文件并输出到文本 set "fileName=Normal.dotm" set "outPutPath=C:\result.tx ...

  10. VBScript中InStr函数的用法

    InStr([start, ]str1, str2[, compare]) [用途]:返回str2在str1中的位置.匹配成功时,返回值最小值为1,未匹配到时返回0. [参数说明]: start:在s ...