JAVA实验一
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 类、对象基础知识
一、 实验目的 1、熟练掌握类、对象的的概念以及对事物的抽象。 2、熟练掌握成员、方法的概念以及构造方法的概念。 3、理解面向对象的程序设计方法。 二、 实验内容与要求 1.运行下面的程序,理解面向对象的程序设计方法的基本概念。 class value { public int x,y; public value(int a,int b) { x=a; y=b; } } public class Ch31 { public static void main(String args[]) { int total; value num=new value(24,65); total=num.x+num.y; System.out.println("add="+total); } } 2.This、super和super()的使用 (1)程序功能:说明this、super和super()的用法。程序首先定义Point(点)类,然后创建 点的子类Line(线)。最后通过LX3类输出线段的长度。 程序中通过super(a,b)调用父类Point的构造方法为父类的x和y赋值。在子类Line的setLine 方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this引用,告诉编译器是为 当前类的成员变量赋值。在length 和toString 方法中使用父类成员变量时,使用super 引用,告 诉编译器使用的是父类的成员变量。 (2)使用this、 super和super()的程序文件源代码如下。 class Point { protected int x, y; Point(int a, int b) { setPoint(a, b); } public void setPoint(int a, int b) { x=a; y=b;
运行结果: 存入21000元后账户888123余额为:22000 取走 11500 元后账户 888123 余额为:10500 2、定义一个“圆”类 Circle,该圆类的数据成员包括:圆心点位置及圆的半径;方法成员有:设 置圆心位置和半径的方法,获取圆心位置和半径的方法及构造方法。要求构造方法可以接收圆 心位置参数,而半径使用缺省值 1。编写完整的程序并创建 Circle 类的对象,并且分别调用各 种方法,对比这些方法的执行结果,并据此写出详细的实验报告。 import java.applet.*; class Circle { double x,y,r; public void set_Circle(double a,double b) { x=a; y=b; } public void set_r() { r=1; } public void set_r(float c) { r=c; } public double re_x() {
}
} public class yuan { public static void main(String []args) { SubCircle a1=new SubCircle(); a1.set_Circle(1,2); a1.set_r(1); System.out.println("----通过父类构造构造函数得到的圆的对象-----"); System.out.println("该圆对象的圆心为: ("+a1.re_x()+","+a1.re_y()+")"); System.out.println("该圆对象的圆心为:"+a1.re_r()); SubCircle a2=new SubCircle(1,2,3); System.out.println("----通过自身构造构造函数得到的圆的对象-----"); System.out.println("该圆对象的圆心为: ("+a2.re_x()+","+a2.re_y()+")"); System.out.println("该圆对象的圆心为:"+a2.re_r()); } } 运行结果为: 调用了拓展圆的构造方法SubCircle() ----通过父类构造构造函数得到的圆的对象----该圆对象的圆心为:(1.0,2.0) 该圆对象的圆心为:1.0 ----通过自身构造构造函数得到的圆的对象----该圆对象的圆心为:(1.0,2.0) 该圆对象的圆心为:3.0
return x; } public double re_y() { return y; } public double re_r() { } return r;
} public class ceshi { public static void main(String args[]) { Circle yuan=new Circle();
4.先创建一个 Point 类,然后定义 Trianglele 类。在 Trianglele 类中定义三个 Point 的实体来表 示一个三角形的三个点,再定义一个方法 setTri 对这三个点进行初始化,然后定义两个方法求 三角形的周长、面积。在 main()中创建一个对象,求给定三点的三角形的周长、面积。 class Point{ float x,y; public void set_point(float a,float b) { x=a;
} public class gouzao {
public static void main(String args[]) { bankaccount ba=new bankaccount("888123",1000); ba.savemoney(21000); System.out.println("存入21000元后账户"+ba.getname()+"余额为: "+ba.getleftmoney()); ba.getmoney(11500); System.out.println("取走11500元后账户"+ba.getname()+"余额为: "+ba.getleftmoney()); } }
yuan.set_Circle(4, 5); yuan.set_r(); System.out.println("选用第一种方法结果为:"); System.out.println("圆心的位置为: ("+yuan.re_x()+','+yuan.re_y()+")"); System.out.println("园的半径为="+yuan.re_r()); yuan.set_r(2); yuan.set_Circle(5, 5); System.out.println("选用第二种方法结果为:"); System.out.println("圆心的位置为: ("+yuan.re_x()+','+yuan.re_y()+")"); System.out.println("园的半径为="+yuan.re_r()); } } 运行结果为: 选用第一种方法结果为: 圆心的位置为:(4.0,5.0) 园的半径为=1.0 选用第二种方法结果为: 圆心的位置为:(5.0,5.0) 园的半径为=2.0
} } class Line extends Point { protected int x, y; Line(int a, int b) { super(a, b); setLine(a, b); } public void setLine(int x, int y) { this.x=x+x; this.y=y+y; } public double length() { int x1=super.x, y1=super.y, x2=this.x, y2=this.y; return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)); } public String toString() { return "直线端点:[" + super.x + "," + super.y + "] [" + x + "," + y + "] 直线长度:" + this.length(); } } public class LX3{ public static void main(String args[]) { Line line=new Line(50, 50); System.out.println("\n"+line.toString()); }} (3)编译并运行程序,结果如图所示。
return x; } public double re_y() { return y; } public double re_r() {
源自文库 }
}
return r;
class SubCircle extends Circle{ public SubCircle() { System.out.println("调用了拓展圆的构造方法SubCircle()"); } public SubCircle(double a,double b,double c) { x=a; y=b; r=c;
3 、定义以上圆类 Circle 的子类 SubCircle ,使它具有获取半径方法、设置半径方法和构造方 法,要求构造方法可同时接收圆心位置及半径两个参数。编写完整的程序并创建 SubCircle 类 的对象,并且分别调用各种方法,对比这些方法。 源代码: import java.applet.*; class Circle { double x,y,r; public void set_Circle(double a,double b) { x=a; y=b; } public void set_r() { r=1; } public void set_r(float c) { r=c; } public double re_x() {
三、 思考题 1、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款 "、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。 提示:关键代码如下: public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); } … bankaccount ba=new bankaccount(888123,1000); ba.savemoney(21000); System.out.println("存入 21000 元后余额为:"+ba.getleftmoney()); ba.getmoney(11500); System.out.println("11500 元后余额为:"+ba.getleftmoney()); 源代码: import java.applet.*; class bankaccount{ int leftmoney; String name; bankaccount(String na,int mon) { name=na; leftmoney=mon; } public String getname() { return name; } public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); }
一、 实验目的 1、熟练掌握类、对象的的概念以及对事物的抽象。 2、熟练掌握成员、方法的概念以及构造方法的概念。 3、理解面向对象的程序设计方法。 二、 实验内容与要求 1.运行下面的程序,理解面向对象的程序设计方法的基本概念。 class value { public int x,y; public value(int a,int b) { x=a; y=b; } } public class Ch31 { public static void main(String args[]) { int total; value num=new value(24,65); total=num.x+num.y; System.out.println("add="+total); } } 2.This、super和super()的使用 (1)程序功能:说明this、super和super()的用法。程序首先定义Point(点)类,然后创建 点的子类Line(线)。最后通过LX3类输出线段的长度。 程序中通过super(a,b)调用父类Point的构造方法为父类的x和y赋值。在子类Line的setLine 方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this引用,告诉编译器是为 当前类的成员变量赋值。在length 和toString 方法中使用父类成员变量时,使用super 引用,告 诉编译器使用的是父类的成员变量。 (2)使用this、 super和super()的程序文件源代码如下。 class Point { protected int x, y; Point(int a, int b) { setPoint(a, b); } public void setPoint(int a, int b) { x=a; y=b;
运行结果: 存入21000元后账户888123余额为:22000 取走 11500 元后账户 888123 余额为:10500 2、定义一个“圆”类 Circle,该圆类的数据成员包括:圆心点位置及圆的半径;方法成员有:设 置圆心位置和半径的方法,获取圆心位置和半径的方法及构造方法。要求构造方法可以接收圆 心位置参数,而半径使用缺省值 1。编写完整的程序并创建 Circle 类的对象,并且分别调用各 种方法,对比这些方法的执行结果,并据此写出详细的实验报告。 import java.applet.*; class Circle { double x,y,r; public void set_Circle(double a,double b) { x=a; y=b; } public void set_r() { r=1; } public void set_r(float c) { r=c; } public double re_x() {
}
} public class yuan { public static void main(String []args) { SubCircle a1=new SubCircle(); a1.set_Circle(1,2); a1.set_r(1); System.out.println("----通过父类构造构造函数得到的圆的对象-----"); System.out.println("该圆对象的圆心为: ("+a1.re_x()+","+a1.re_y()+")"); System.out.println("该圆对象的圆心为:"+a1.re_r()); SubCircle a2=new SubCircle(1,2,3); System.out.println("----通过自身构造构造函数得到的圆的对象-----"); System.out.println("该圆对象的圆心为: ("+a2.re_x()+","+a2.re_y()+")"); System.out.println("该圆对象的圆心为:"+a2.re_r()); } } 运行结果为: 调用了拓展圆的构造方法SubCircle() ----通过父类构造构造函数得到的圆的对象----该圆对象的圆心为:(1.0,2.0) 该圆对象的圆心为:1.0 ----通过自身构造构造函数得到的圆的对象----该圆对象的圆心为:(1.0,2.0) 该圆对象的圆心为:3.0
return x; } public double re_y() { return y; } public double re_r() { } return r;
} public class ceshi { public static void main(String args[]) { Circle yuan=new Circle();
4.先创建一个 Point 类,然后定义 Trianglele 类。在 Trianglele 类中定义三个 Point 的实体来表 示一个三角形的三个点,再定义一个方法 setTri 对这三个点进行初始化,然后定义两个方法求 三角形的周长、面积。在 main()中创建一个对象,求给定三点的三角形的周长、面积。 class Point{ float x,y; public void set_point(float a,float b) { x=a;
} public class gouzao {
public static void main(String args[]) { bankaccount ba=new bankaccount("888123",1000); ba.savemoney(21000); System.out.println("存入21000元后账户"+ba.getname()+"余额为: "+ba.getleftmoney()); ba.getmoney(11500); System.out.println("取走11500元后账户"+ba.getname()+"余额为: "+ba.getleftmoney()); } }
yuan.set_Circle(4, 5); yuan.set_r(); System.out.println("选用第一种方法结果为:"); System.out.println("圆心的位置为: ("+yuan.re_x()+','+yuan.re_y()+")"); System.out.println("园的半径为="+yuan.re_r()); yuan.set_r(2); yuan.set_Circle(5, 5); System.out.println("选用第二种方法结果为:"); System.out.println("圆心的位置为: ("+yuan.re_x()+','+yuan.re_y()+")"); System.out.println("园的半径为="+yuan.re_r()); } } 运行结果为: 选用第一种方法结果为: 圆心的位置为:(4.0,5.0) 园的半径为=1.0 选用第二种方法结果为: 圆心的位置为:(5.0,5.0) 园的半径为=2.0
} } class Line extends Point { protected int x, y; Line(int a, int b) { super(a, b); setLine(a, b); } public void setLine(int x, int y) { this.x=x+x; this.y=y+y; } public double length() { int x1=super.x, y1=super.y, x2=this.x, y2=this.y; return Math.sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1)); } public String toString() { return "直线端点:[" + super.x + "," + super.y + "] [" + x + "," + y + "] 直线长度:" + this.length(); } } public class LX3{ public static void main(String args[]) { Line line=new Line(50, 50); System.out.println("\n"+line.toString()); }} (3)编译并运行程序,结果如图所示。
return x; } public double re_y() { return y; } public double re_r() {
源自文库 }
}
return r;
class SubCircle extends Circle{ public SubCircle() { System.out.println("调用了拓展圆的构造方法SubCircle()"); } public SubCircle(double a,double b,double c) { x=a; y=b; r=c;
3 、定义以上圆类 Circle 的子类 SubCircle ,使它具有获取半径方法、设置半径方法和构造方 法,要求构造方法可同时接收圆心位置及半径两个参数。编写完整的程序并创建 SubCircle 类 的对象,并且分别调用各种方法,对比这些方法。 源代码: import java.applet.*; class Circle { double x,y,r; public void set_Circle(double a,double b) { x=a; y=b; } public void set_r() { r=1; } public void set_r(float c) { r=c; } public double re_x() {
三、 思考题 1、定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款 "、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。 提示:关键代码如下: public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); } … bankaccount ba=new bankaccount(888123,1000); ba.savemoney(21000); System.out.println("存入 21000 元后余额为:"+ba.getleftmoney()); ba.getmoney(11500); System.out.println("11500 元后余额为:"+ba.getleftmoney()); 源代码: import java.applet.*; class bankaccount{ int leftmoney; String name; bankaccount(String na,int mon) { name=na; leftmoney=mon; } public String getname() { return name; } public int getleftmoney(){ return leftmoney; } public void savemoney(double money){ leftmoney+=money; } public void getmoney(double money){ if(money<=leftmoney) leftmoney-=money; else System.out.println("只能取:"+leftmoney); }