java实验四对象和类(抽象类、接口与包)

合集下载

Java中抽象类与接口的比较

Java中抽象类与接口的比较
的 抽 象 。比 如 我 们 要 开 发 一 个 管 理 乐
能被实例化 的 ,更重要 的是接 口中的 方法都是抽 象的 ,这 些方法 要到实现
器的软 件 ,会发现 问题 领域 存在着笛 这个接 口的类中去实现 。接 口的本 质 子 、古筝等一些具体概 念 ,它们是不 是在 ca ss lse 之间建立起一个协议 ,它 同的 ,但都属于乐 器,这里的乐器就
抽象类 和接 口都 位于继 承树的 上
层 ,它 们 具 有 以 下 相 同 点 :
ml me t a i{ 系 ,接 口的 多继 承性正好 可以解决这 i pe ns R do
v i i (l ・; od wr e)l: t _
1)都代表 系统 的抽 象 层。 2)都 不能 被实 例化 。
p bi Sr g wh t){ u l t n a( c i
rt n e ur ‘ ns r ‘ t um e ”I I nt
} }
我们知 道 ,类可 以被 实例化生成 法都是抽 象的 ,没有 涉及特殊 手机的 多个 对象来使用 ,但 抽象类不能被实 任何细节 ,也没有涉 及这些操 作的具
现 ,因为每 一种 乐器的演奏和调节 方
l 1什么是抽象类 ,
的 两种 机制 ,二者有很 大的相似性 ,艾存 在
本质 的 区别 。本文 从抽 象类和接 1 3的重要性
在面 向对象的概念 中 ,所有的对 式都是不 同的 ,所以这些方法 的实现
出发,分别介 绍 了它们的概 念 ,并 分析得 出
v i eev Ra i(; od rc ie do )

3 )定义类 Ra iP n继承 P n并 do e e
c as R a o n e e l s di Pe xt nds Pe n

【精】JAVA面向对象程序设计类与对象

【精】JAVA面向对象程序设计类与对象
JAVA语言中的类实际包括两种: 1. 系统定义的类 2. 用户自己定义的类
系统定义的类
JAVA系统定义好的类,根据实现的功能的不 同,划分为不同的集合—包,所有的包合称为 类库。
要在程序中使用某个系统类,必须使用import 语句引入该类所在的包。
用户自定义的类
问题还是需要用户通过编写自 己的类来解决。因此,JAVA程序设计的过程 实际就是用户把客观世界的问题定义为自己的 类来解决的过程。
使用对象
对象的数据成员、对象的方法的引用方式如下:
对象名.成员名
如:lily.height;
对象名.方法名(参数表) 如:lily.run();
类的定义
类的基本定义方法如下:
[修饰符] class 类名 [extends 父类] [implements 接口名] {
类成员变量声明 类方法声明 }
类成员变量声明 类方法声明 }
构造方法
创建对象后,通常要为对象赋初值—即对象的 初始化,为简化这一步操作,JAVA提供了一 种特殊的方法—构造方法。
构造方法实例
class people {
float height; float weight; people(float aheight,float aweight) {
用前面定义的people类创建一个对象lily
JAVA中使用new关键字创建对象,对象的创建 可以使用以下两种方式:
1. people lily;
2.
lily=new people();
2. people lily=new people();
以上语句执行后,lily就是people的一个对象(实 例);它将具有“存储意义上”的真实性。

接口和抽象类的区别和作用(功能、用途、好处)

接口和抽象类的区别和作用(功能、用途、好处)

接⼝和抽象类的区别和作⽤(功能、⽤途、好处)接⼝:抽象类和接⼝亲兄弟,但是有嫡出庶出的区别总结了4点接⼝存在的意义:1、重要性:在Java语⾔中, abstract class 和interface 是⽀持抽象类定义的两种机制。

正是由于这两种机制的存在,才赋予了Java强⼤的⾯向对象能⼒。

2、简单、规范性:如果⼀个项⽬⽐较庞⼤,那么就需要⼀个能理清所有业务的架构师来定义⼀些主要的接⼝,这些接⼝不仅告诉开发⼈员你需要实现那些业务,⽽且也将命名规范限制住了(防⽌⼀些开发⼈员随便命名导致别的程序员⽆法看明⽩ 3、维护、拓展性:⽐如你要做⼀个画板程序,其中⾥⾯有⼀个⾯板类,主要负责绘画功能,然后你就这样定义了这个类。

可是在不久将来,你突然发现这个类满⾜不了你了,然后你⼜要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地⽅可能有引⽤他,这样修改起来很⿇烦。

如果你⼀开始定义⼀个接⼝,把绘制功能放在接⼝⾥,然后定义类时实现这个接⼝,然后你只要⽤这个接⼝去引⽤实现它的类就⾏了,以后要换的话只不过是引⽤另⼀个类⽽已,这样就达到维护、拓展的⽅便性。

4、安全、严密性:接⼝是实现软件松耦合的重要⼿段,它描叙了系统对外的所有服务,⽽不涉及任何具体的实现细节。

这样就⽐较安全、严密⼀些(⼀般软件服务商考虑的⽐较多)。

那么什么是接⼝呢?接⼝是⼀种能⼒1:接⼝的命名规则与类型不同。

如果修饰符是public。

则该接⼝在整个项⽬中可见,如果省略修饰符则该接⼝只能在该包可见2:接⼝中可以定义常量,不能定义变量,接⼝中的属性都会⾃动⽤public static final修饰,即接⼝中的属性都是全局静态常量,接⼝中的常量必须在定义时指定初始值3:接⼝中所有的⽅法抽象⽅法。

接⼝中的⽅法都会⾃动⽤public abstract修饰。

即接⼝中只有全局抽象⽅法,4:和抽象类⼀样,接⼝不能被实例化,接⼝中不能有狗构造⽅法5:接⼝之间可以通过extends 实现继承关系,⼀个接⼝可以继承多个接⼝。

第三章 Java类、对象和接口

第三章 Java类、对象和接口
2013-8-3
对象
对象的引用和实体
对象的引用:对象成员变量的内存位置的首地 址 对象的实体:对象成员变量的内存空间
2013-8-3
类、变量和方法
方法的定义及修饰字
[方法修饰字] 返回类型 方法名称(参数1,参数2,„) [throws exceptionList] { „(statements;) //方法体:方法的内容 } [public | protected | private ] [static] [final | abstract] [native] [synchronized]
2013-8-3
例子3
书上41页例子4.1
class XiyoujiRenwu { float height,weight; String head, ear,hand,foot, mouth; void speak(String s) { System.out.println(s); } } class A { public static void main(String args[]) { XiyoujiRenwu zhubajie; //声明对象。 zhubajie=new XiyoujiRenwu(); //为对象分配内存,使用 new 运算符和默认的构造方法。 } 2013-8-3 }
客户可以调用一个并不了解内部机制的对象的方法 任何关于内部的改动对客户来说都是隐藏的
2013-8-3
面向对象的概念—封装
封装的基本要求:
有一个特定的边界:所有的内部变化都限制在此边界内(类定义 的{ }); 有外部接口:此对象利用它与其它对象发生关联(public成员); 有特定的访问权限:在对象外部不能访问或修改受保护的内部实 现细节(private成员)。

JAVA实验报告Y.Daniel Liang第二次实验

JAVA实验报告Y.Daniel Liang第二次实验

2014-2015学年第一学期实验报告课程名称:Java SE 平台技术实验名称:JA VA编程(基础练习)姓名:学号:成绩:指导教师:日期:目录一、实验目的 (3)二、实验内容 (3)2.1 构建一个继承类。

(3)2.2 抽象类和接口的使用 (3)2.3 图像类编程和事件驱动程序。

(3)三、实验环境 (3)四、实验结果 (3)4.1构建继承类 (3)4.2抽象类和接口的使用 (3)4.3 事件驱动程序 (3)五、附录 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.2 设计方案 (4)5.1构建继承类 (4)5.2抽象类和接口的使用 (4)5.3 事件驱动程序 (4)5.3 算法 (4)5.3.1 三角形继承类 (4)5.3.2 抽象类与接口 (5)5.3.3 画出小车 (5)5.4. 设计图 (6)5.4.1 三角形类UML设计图 (6)5.4.2.1 Colorable接口UML设计图 (7)5.4.2.2 CompareTo与Clone接口UML设计图 (8)5.4.3 小车UML设计图 (9)5.5 仿真结果 (9)5.5.1构建继承类 (9)5.5.2抽象类和接口的使用 (9)5.5.3 事件驱动程序 (10)5.6 调试心得 (10)5.6.1 错误分析 (10)5.6.2 心得与收获 (10)一、实验目的通过使用JA V A语言进行基本程序的开发,掌握JA V A通用IDE,练习类的封装使用、JA V A基本类库的使用、利用UML进行简单建模。

二、实验内容2.1 构建一个继承类。

2.2 抽象类和接口的使用2.3 图像类编程和事件驱动程序。

三、实验环境Eclipse、Win 8.1四、实验结果4.1构建继承类输出了三角形的三边长,面积,周长。

4.2抽象类和接口的使用4.2.1执行Colorable接口,输出了一条how to color的信息4.2.2执行Comparable 和Cloneable接口,输出了创建的五边形和克隆五边形的周长和面机的信息。

接口用法示例实验报告(3篇)

接口用法示例实验报告(3篇)

第1篇一、实验目的1. 理解接口的概念和作用。

2. 掌握接口的基本用法,包括接口的定义、实现和实现类。

3. 通过实际操作,加深对接口的理解和应用。

二、实验环境1. 操作系统:Windows 102. 开发工具:IntelliJ IDEA3. 编程语言:Java三、实验内容1. 接口的基本概念2. 接口的定义与实现3. 接口的多态性4. 接口的应用示例四、实验步骤1. 接口的基本概念(1)打开IntelliJ IDEA,创建一个新的Java项目。

(2)在项目下创建一个包,命名为“com.example”,用于存放实验代码。

(3)在包下创建一个接口,命名为“IAnimal”,用于定义动物的基本行为。

```package com.example;public interface IAnimal {void eat();void sleep();}```2. 接口的定义与实现(1)在“com.example”包下创建一个类,命名为“Dog”,实现“IAnimal”接口。

```package com.example;public class Dog implements IAnimal {@Overridepublic void eat() {System.out.println("狗吃肉");}@Overridepublic void sleep() {System.out.println("狗睡觉");}}```(2)在“com.example”包下创建另一个类,命名为“Cat”,实现“IAnimal”接口。

```package com.example;public class Cat implements IAnimal {@Overridepublic void eat() {System.out.println("猫吃鱼");}@Overridepublic void sleep() {System.out.println("猫睡觉");}}```3. 接口的多态性(1)在主类“Main”中创建一个方法,用于测试接口的多态性。

(java课程)第4章 类和对象

简单,但是经过封装以后却可以在程序中达到 任意高的复杂程度。
4. 每个对象都属于某个类。根据语法, 每个对象都是某个"类"的一个"实例"。一个类 的最重要的的特征就是"能将什么消息发给它? ",也就是类本身有哪些操作。
4.1.1 面向过程
• 面向对象是在面向过程中发展出来的。 面向对象的程序中不可能没有面向过程 的代码。毕竟,程序仍然是让计算机执 行的。
与类的实例无关。静态方法只可以访问 类中的静态数据或者其他静态方法,不 可以访问其他非静态的数据和方法。
4.4 类的继承
• 通过继承的机制,可以利用已有的类型 来定义新的类型。
• 子类继承父类的格式如下: A
• class son extends father 树
B
C
柳树
杨树
桃树
4.5 this和super
例如,可以在一个类中定义这些方法:
Area(); Area(int r) Area(float p_Width,float p_High); Area(float a, float b, float c);4.3.8 静源自成员方法静态方法格式如下:
[访问标识符] static 类型 方法名(参数表) 实际上静态方法、数据只同所属类有关,
private、protected、static和final。 2.类型用来定义变量的数据类型。可以为基本的数据类型,也可
以是复合数据类型,例如类。 3.变量名用来标明变量的名称,名称必须符合Java的命名规则。 4.在变量定义时,可以赋一个初始值,也可以不赋。但对于必要
的变量建议赋值。 5.变量定义支持","操作符。即可以对多个类型相同的变量在一行

Java中抽象类(abstract class)和接口(interface)的使用


【 要 】 bt cc s 和 i e ae J a 摘 :asatl s n rc 是 a 语言 中对 于 象类定义 的两种机 制 。它们之 间在 对于抽象 类定 义的 支持 方 r a t f v 抽 面具有很 大的相似性 , 实际上 , 两者之 阃还 是有 区别的 , 于它们的选择 可 以反 映 出对 于问题领域本 质的理解 、 于设计 意 对 对 图的理解是否正确、 合 1 07 期
福 建 电 脑
jv aa中抽 象类 (bt c c s as at l s r a
吴小青
(元 锡 南 洋职 业技 术 学 院 信 息 系 江 苏 无锡
E( tr c) lnef e i a
248 10 1)
【 关键词】 : gg( satl s 接口( t a )面向对象 a t cc s) b r a 、 ie c 、 nr e f
子类只能有一个父类 , 但是 , 一个类却 可以实现多个接 口( t . ie nr fc ) ae 。接 口实际上解决 了 Jv 不支持多重继承 的问题 . aa 可以通 过实现多个接 口达到与多重继承相同的功能 第 二 。 as at l s的定 义 中 , 以有 自 己的 数 据 成 员 和 在 bt c a r cs 可 方 法。 方法 可以是抽 象的也可 以是非抽象的 . 方法也可以有默认 行为。 但是 在 itr c ne ae的定 义中 , f 变量必须是 f a s t i l ti n a c的. 方法 个 图形编辑 软件的开发 , 就会 发现 问题 领域存在着 点 、 直线 、 也不能拥有 默认行 为。在抽象类 中不能定义默认行为可 能会 造 圆、 三角形这样一些具体概念 , 它们 是互不相 同的 , 但是它们 又 成 维护上 的麻烦 。因为如果 后来想修改 类 ( 一般 通过 as at bt c r 都 属 于 图形 形 状这 样 一 个 概念 形 状 这 个 概 念 在 问题 领域 是 不 ca8 者 it ae来 表 示 ) ls 或 ne c f r 以适 应 新 的 情 况 ( 如 , 加 新 的 方 比 添 存在的 . 通俗 的说我们不能够像 想象 ” 一 样想象 ” 圆” 形状” 怎 法 或 者 给 已用 的 方 法 中 添加 新 的 参 数 ) , 会 非 常 的 麻 烦 , 是 时 就 可 样 一 个 图 形 , 就 是 一个 抽 象 概 念 。 是 因 为 抽 象 的概 念在 问题 能 要 花 费 很 多 的时 间 。但 是 如果 界 面是 通 过 as at l s 实 它 正 btc cs 来 r a 领 域 没 有 对应 的具 体 概念 .所 以 用 以表 征 抽 象 概 念 的抽 象 类 是 现 的 .那 么 可 能 就 只 需 要 修 改 定 义 在 a 8 at l s 的 默 认 行 bt c a 中 r cs 不 能够实例化具体对象的。 为就 可 以 了 。 个 抽 象 类 可 以定 义 一 个 统 一 的 编 程 接 口 .使 其 子 类 表 现 从设计理念层面看 a s at l s和 i e ae。上面主要从 b t c a r c s n rc tf 出共 同的状态 和行为 。 但各 自的细节是不 同的。 子类共有的行为 语 法 定 义 和 编 程 的 角 度 论 述 了 a8 at as和 it fc bt c d 8 r ne ae的 区 r 由抽 象 类 中 的抽 象 方 法 来 约束 .而 子 类 行 为 的具 体 细节 则 通过 别 。 这些层面 的区别是 比较低 层次的、 非本质 的。以下将从 另一 抽象方法的覆盖来实现。 由于模块依赖于 一个 固定 的抽象体 . 因 个 层 面 : s at l s it ae所 反 映 出 的设 计 理 念 。来 分 析 b r s a t c ca 和 ne c f r 此它可 以是不允许修 改的 ; 同时 , 通过 从这个抽象 类派生 , 也可 下 二者 的 区别 。从 这 个 层 面 进 行 分 析 才 能 理 解 二 者 概 念 的 本 扩 展 此 模 块 的 行 为 功 能 。 熟悉 O P的 读 者 一 定 知 道 . 了 能够 质 所 在 。 C 为 上 文 中 已经 提 到 过 . s rt l s在 jv b a a a tc cs aa语 言 中 体 现 了 一 实现面向对象设计的一个最核心 的原 则 O PO e — l e r . C (p n Co dPi s n c l)抽 象 类 是其 中 的关 键 所 在 i e. p 种继 承关 系 , 想 使 得 继 承 荧 系 合理 。 类 和 派 生 类 之 间 必须 存 要 父

java面向对象 实验四 类和对象编程(面向对象特征)

学号姓名实验序号实验四实验名称类和对象编程—面向对象特征实验地点实验日期实验内容1.设计3个类,分别学生类Student,本科生类Undergaduate,研究生类Postgraduate,学生类包含一些基本属性,如姓名、所学课程、课程成绩等,具有一个空方法getGrade();本科生类Undergaduate与研究生类Postgraduate继承学生类Student,都覆盖了父类的getGrade()方法,用于通过分数计算成绩的等级,计算方法不同,研究生的标准要比本科生的标准高一些,如下表所示。

要求对属性进行适当封装,通过方法来访问。

表课程成绩等级本科生标准研究生标准80--100优秀90—100优秀70--80良好80—90良好60--70一般70—80一般50--60及格60—70及格50以下不及格60以下不及格编写测试类,在测试类里创建Undergaduate与Postgraduate对象,计算他们的成绩,并输出他们的个人信息。

实验过程及步骤根据实验要求编写程序如下:class Student {private String name;private String course;private int score;public String getName() {return name;}public void setName(String name) { = name;}public String getCourse() {return course;}public void setCourse(String course) {this.course = course;}public int getScore() {return score;}public void setScore(int score) { this.score = score;}public String getGrade() {return"";}}class Undergaduate extends Student { Undergaduate(String _name, String_course, int _score) {setName(_name);setCourse(_course);setScore(_score);实验过程及步骤}public String getGrade() {int grade = getScore();if (grade >= 80)return ("优秀");if (grade >= 70)return ("良好");if (grade >= 60)return ("一般");if (grade >= 50)return ("及格");return ("不及格");}}class Postgraduate extends Student { Postgraduate(String _name, String _course, int _score) {setName(_name);setCourse(_course);setScore(_score);}public String getGrade() {int grade = getScore();if (grade >= 90)return ("优秀");if (grade >= 80)return ("良好");if (grade >= 70)return ("一般");if (grade >= 60)return ("及格");return ("不及格");}}public class Test {public static void main(String[] args) {Undergaduate a1 = new Undergaduate("张三", "JAVA", 80);Undergaduate a2 = new实验过程及步骤Undergaduate("李四", "JAVA", 60);Postgraduate b1 = newPostgraduate("王五", "JAVA", 90);System.out.println(a1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(b1.getName() + "的" + a1.getCourse() + "成绩为"+ a1.getGrade());System.out.println(a2.getName() + "的" + a2.getCourse() + "成绩为"+ a2.getGrade());}}得到结果:实验结果及分析教师评阅。

实验四 Java语言面向对象基础编程

实验四 Java语言面向对象基础编程一、实验目的1.理解Java语言是如何体现面向对象编程基本思想,2.了解类的封装方法,以及如何创建类和对象,3.了解成员变量和成员方法的特性。

二、实验内容1.类的定义、封装和对象创建的使用。

编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

具体要求如下:(1)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。

(2)Lader类具有类型double的上底、下底、高、面积属性,具有求面积的功能。

(3)Circle类具有类型为double的半径、周长和面积属性,具有求周长、面积的功能。

package exercise;class Trangle{double sideA,sideB,sideC,area,length;boolean boo;//带三个参数的构造函数public Trangle(double a,double b,double c) {sideA=a;//参数a,b,c 分别赋值给sideA,sideB,sideCsideB=b;sideC=c;if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA){//a,b,c 构成三角形的条件表达式boo=true;//给boo 赋值。

}else{boo=false;//给boo 赋值。

}}double getLength(){return sideA+sideB+sideC;//方法体,要求计算出length 的值并返回}//计算三角形的面积publicdouble getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}publicvoid setABC(double a,double b,double c){sideA=a;//参数a,b,c 分别赋值给sideA,sideB,sideCsideB=b;sideC=c;if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA){//a,b ,c 构成三角形的条件表达式boo=true;//给boo 赋值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java实验四 对象和类(抽象类、接口与包) 实验四 对象和类(抽象类、接口与包) 一、实验目的 1、熟练掌握抽象类abstract的概念。 2、熟练掌握接口interface的概念。 3、熟练包package的概念以及编译运行的方法。 4、熟练掌握内部类inner class的概念。 5、熟练掌握递归的概念。 6、理解面向对象的程序设计方法。 二、实验内容与要求 1(编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程 序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的特 点。 程序如下: abstract class Geometric{ //定义抽象类 abstract double getPerimter(); abstract double getArea(); } interface MY{ //定义接口 float getarea(); float getperimter(); } class sanjiaoxing extends Geometric{ //三角形类继承抽象类 private float a; private float b; private float c; sanjiaoxing(float x1,float x2,float x3){ a=x1;b=x2;c=x3; } double getPerimter(){ return a+b+c; } double getArea(){ float p=(a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } } class yuanxing extends Geometric{ //圆类继承抽象类 private float radius; yuanxing(float a){ radius=a; } double getPerimter(){ double p; p=2*3.14f*radius; return p; } double getArea(){ return 3.14f*radius*radius; } } class juxing implements MY{ //矩形类实现接口 private float height; private float width; juxing(float a,float b){ height=a;width=b; } public float getperimter(){ return 2*(width+height); } public float getarea(){ return width*height; } } class abc{ public static void main(String args[]){ sanjiaoxing obj1=new sanjiaoxing(3,4,5); System.out.println("当三角形三边是3,4,5时:"); System.out.println("边长是:"+obj1.getPerimter()); System.out.println("面积是:"+obj1.getArea()); yuanxing obj2=new yuanxing(4); System.out.println("当圆的半径是4时:"); System.out.println("周长是:"+obj2.getPerimter()); System.out.println("面积是:"+obj2.getArea()); juxing obj3=new juxing(3,4); System.out.println("当矩形长和宽是3,4时:"); System.out.println("周长是:"+obj3.getperimter()); System.out.println("面积是:"+obj3.getarea()); } } 结果如下:

, 出现的问题1:需要定义抽象类和接口,并用三角形、矩形和圆形来实现 里边定义的方法。 2、重写上面的程序,要求三角形,矩型,圆,多边型的类放到不同的包中,用包的技术组织程序的设计。同时要求程序能从键盘上接受数据以便求解不同的几何图形的周长面积。 程序如下: 这是在a包中的三角形类: package a; import java.util.Scanner; public class sanjiaoxing { float a; float b; float c; public void shuru() { Scanner s = new Scanner(System.in); String str = s.next(); String[] arr = str.split("/"); a = Float.parseFloat(arr[0]); b = Float.parseFloat(arr[1]); c = Float.parseFloat(arr[2]); } public float getPerimter(){ return a+b+c; } public double getArea(){ float p=(a+b+c)/2; return Math.sqrt(p*(p-a)*(p-b)*(p-c)); } } 这是在b包中矩形的类: package b; import java.util.Scanner; public class juxing { float height; float width; public void shuru() { Scanner s = new Scanner(System.in); String str = s.next(); String[] arr = str.split("/"); height = Float.parseFloat(arr[0]); width = Float.parseFloat(arr[1]); } public float getperimter(){ return 2*(width+height); } public float getarea(){ return width*height; } } 这是在c包中圆形的类: package c; import java.util.Scanner; public class yuanxing { float radius; public void shuru() { Scanner s = new Scanner(System.in); String str = s.next(); String[] arr = str.split("/"); radius = Float.parseFloat(arr[0]); } public double getPerimter(){ double p; p=2*3.14f*radius; return p; } public double getArea(){ return 3.14f*radius*radius; } } 这是在Tuxing项目中实现程序的代码: import a.sanjiaoxing; import b.juxing; import c.yuanxing; public class Tuxing { public static void main(String[] args) { sanjiaoxing obj1=new sanjiaoxing(); juxing obj2=new juxing(); yuanxing obj3=new yuanxing(); System.out.println("请输入三角形三条边:"); obj1.shuru(); System.out.println("周长是:"+obj1.getPerimter()); System.out.println("面积是:"+obj1.getArea()); System.out.println("请输入矩形宽和长:"); obj2.shuru(); System.out.println("周长是:"+obj2.getperimter()); System.out.println("面积是:"+obj2.getarea()); System.out.println("请输入圆的半径:"); obj3.shuru(); System.out.println("周长是:"+obj3.getPerimter()); System.out.println("面积是:"+obj3.getArea()); } } 结果如下: 出现的问题1:刚开始不知道怎么把各个不同的类放在不同的包中,所以弄了很久,还有一个问题是题目要求程序能从键盘上接受数据以便求解不同的几何图形的周长面积,所以刚开始老师给的程序段看不懂,所以就上网找了另一段代码, 即public void shuru() { Scanner s = new Scanner(System.in); String str = s.next(); String[] arr = str.split("/"); a = Float.parseFloat(arr[0]); b = Float.parseFloat(arr[1]); c = Float.parseFloat(arr[2]); } ,(练习java.lang.Class类的使用,通过一个对象返回一个Class对象,如何获取一个类的名称,如何使用class生成一个类的对象。获取类的描述信息。 程序如下: public class abcd { public static void main(String arg[]) { abcd t=new abcd(); Class tc=t.getClass(); String s=tc.getName(); System.out.println("name:"+s); } } 结果如下:

相关文档
最新文档