Java面向对象练习
1、定义长方形类,含:
属性:宽、高(整型);
方法:求周长、面积;
构造方法3个:(1)无参——宽、高默认值为1;(2)1个参数——宽、高均为参数值;(3)2个参数——宽、高各为参数值。
要求:进行测试。
代码如下:
长方形的类:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
package Test1;public class Rectangle { //定义长宽属性 private int iWidth; private int iHeight; //构造器1 public Rectangle(){ this.iHeight = 1; this.iWidth = 1; } //构造器2 public Rectangle(int iIndex){ this.iWidth = iIndex; this.iHeight = iIndex; } //构造器3 public Rectangle(int iWidth, int iHeight){ this.iHeight = iHeight; this.iWidth = iWidth; } //求周长 public int getLength(){ return 2*(this.iHeight+this.iWidth); } //求面积 public int getSquare(){ return this.iHeight*this.iWidth; }}测试类:package Test1;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Rectangle oRec1 = new Rectangle(); System.out.println("默认长方形的周长为:"+oRec1.getLength()); System.out.println("默认长方形的面积为:"+oRec1.getSquare()); Rectangle oRec2 = new Rectangle(2); System.out.println("一个参数长方形的周长为:"+oRec2.getLength()); System.out.println("一个参数长方形的面积为:"+oRec2.getSquare()); Rectangle oRec3 = new Rectangle(2,3); System.out.println("两个参数长方形的周长为:"+oRec3.getLength()); System.out.println("两个参数长方形的面积为:"+oRec3.getSquare()); }} |
运行结果:
默认长方形的周长为:4
默认长方形的面积为:1
一个参数长方形的周长为:8
一个参数长方形的面积为:4
两个参数长方形的周长为:10
两个参数长方形的面积为:6
2、定义圆类,它有一个变量radius(半径)。从键盘输入数据,通过构造方法传递给radius,编程计算并输出圆的周长和面积(确保输入的数据不为负数)。
要求:进行测试。
代码如下:
圆的类:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
package Test2;public class Circle { private double radius; public Circle(double dRadius){ this.radius = dRadius; } public double getLength(){ return 2*Math.PI*this.radius; } public double getArea() { return Math.PI*this.radius*this.radius; }}测试类:package Test2;import java.util.Scanner;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double iRadius; Scanner sc = new Scanner(System.in); System.out.print("请输入圆的半径:"); iRadius = sc.nextDouble(); if(iRadius < 0){ System.out.println("你输入的半径有误!"); } else{ Circle oCir = new Circle(iRadius); System.out.println("圆的周长为:"+oCir.getLength()); System.out.println("圆的面积为:"+oCir.getArea()); } }} |
运行结果:
正数时:
请输入圆的半径:1
圆的周长为:6.283185307179586
圆的面积为:3.141592653589793
负数时:
请输入圆的半径:-1
你输入的半径有误!
3、定义长方体类,定义求底面积、体积的方法。(可利用上述定义的长方形类)
要求:进行测试。
代码如下:
长方体类:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package Test3;import Test1.Rectangle;public class RecV extends Rectangle{ int iLong; public RecV(int iWidth, int iHeight, int iLong){ super(iWidth,iHeight); this.iLong = iLong; } public int getBtmArea(){ return this.getSquare(); } public int getVolume(){ return this.getSquare()*this.iLong; }}测试类:package Test3;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub RecV oRecV = new RecV(1,2,3); System.out.println("长方体的底面积为:"+oRecV.getBtmArea()); System.out.println("长方体的体积为:"+oRecV.getVolume()); }} |
运行结果:
长方体的底面积为:2
长方体的体积为:6
4、定义球类,定义求体积的方法。(可利用上述定义的圆类)
要求:进行测试。
代码如下:
球的类:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package Test4;import Test2.Circle;public class Bool extends Circle{ public Bool(double dRadius) { super(dRadius); // TODO Auto-generated constructor stub } public double getBoolVolume(){ return (4/3)*Math.PI*Math.pow(this.radius, 3.0); }}测试类: package Test4;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Bool oBool = new Bool(1); System.out.println("球的体积为:"+oBool.getBoolVolume()); }} |
运行结果:
球的体积为:3.141592653589793
5、定义一个计算器类,包括加、减、乘、除运算。
要求:进行测试。
代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package Test5;public class Calculator { private int iFirstNum; private int iSecondNum; public Calculator(int iFirst, int iSecond){ this.iFirstNum = iFirst; this.iSecondNum = iSecond; } public int getAdd(){ return this.iFirstNum + this.iSecondNum; } public int getSub(){ return this.iFirstNum - this.iSecondNum; } public int getMul(){ return this.iFirstNum * this.iSecondNum; } public void getDev(){ if(this.iSecondNum ==0){ System.out.print("分子不能为零!"); } else { System.out.print(this.iFirstNum/this.iSecondNum); } }}测试类:package Test5;public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Calculator oCal = new Calculator(4,2); System.out.println("两数之和为 :"+oCal.getAdd()); System.out.println("两数之差为:"+oCal.getSub()); System.out.println("两数之积为:"+oCal.getMul()); System.out.print("两数之商为:"); oCal.getDev(); }} |
运行结果:
两数之和为 :6
两数之差为:2
两数之积为:8
两数之商为:2
7、编写程序使用复数类Complex验证两个复数 2+2i 和3+3i 相加产生一个新的复数5+5i 。复数类Complex满足如下要求:
(1)属性:RealPart : int型,代表复数的实数部分;ImaginPart : int型,代表复数的虚数部分
(2)方法:
Complex( ) : 构造方法,将复数的实部和虚部都置0
Complex( int r , int i ) : 构造方法,形参 r 为实部的初值,i为虚部的初值。
Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
String toString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别为实部和虚部的数据。
(3)进行测试。
代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
package Test7;public class Complex { private int iRealPart; private int iImaginPart; public Complex(){ iRealPart = 0; iImaginPart = 0; } public Complex(int r, int i){ iRealPart = r; iImaginPart = i; } public Complex complexAdd( Complex a ){ this.iRealPart += a.iRealPart; this.iImaginPart += a.iImaginPart; return this; } public String toString(){ return this.iRealPart+"+"+this.iImaginPart+"i"; }}测试类:package Test7;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //复数实例化 Complex oFirstNum = new Complex(); Complex oFirstNum1 = new Complex(2,3); Complex oSecondNum = new Complex(3,4); oFirstNum.complexAdd(oSecondNum); System.out.println("1。复数之和为:"+oFirstNum.toString()); oFirstNum1.complexAdd(oSecondNum); System.out.println("2.复数之和为:"+oFirstNum1.toString()); }} |
运行结果:
1。复数之和为:3+4i
2.复数之和为:5+7i
8、试编写Java代码实现一个计数器类Computer其中包括:
域value :用来保存计数器的当前值;
方法increment(): 计数器加一;
方法decrement() :计数器减一;
方法reset():计数器清零。
请编写并调试程序。
代码如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package Test8;public class Computer { private int value; public Computer(){ this.value = 0; } public void increment(){ this.value++; } public void decrement(){ this.value--; } public void reset(){ this.value = 0; } public int getValue(){ return this.value; }}测试类:package Test8;public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Computer oCount = new Computer(); System.out.println("计数器的初始值为:" + oCount.getValue()); oCount.increment(); oCount.increment(); oCount.increment(); System.out.println("加三后的值为:" + oCount.getValue()); oCount.decrement(); System.out.println("减一后的值为:" + oCount.getValue()); oCount.reset(); System.out.println("初始化后的值为:" + oCount.getValue()); }} |
运行结果:
计数器的初始值为:0
加三后的值为:3
减一后的值为:2
初始化后的值为:0
作者:青玉伏案
出处:http://www.cnblogs.com/ludashi/
本文版权归作者和共博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
收简历:坐标美团(北京总部),长期招聘FE/iOS/Android靠谱工程师,入职后,可内部联系楼主,有小礼品赠送,有意者可邮箱投递简历:zeluli@foxmail.com

浙公网安备 33010602011771号