实验项目B、Java类基础编程

一、实验目的

专题:类和对象基础

1、掌握类的定义。

2、掌握类的使用——创建实例(对象)。

3、掌握set、get方法的本质。

4、初步掌握构造方法。

专题:方法

1、掌握方法的传值调用。

2、掌握方法的重载。

3、理解变量的作用域。

4、掌握可变长度参数。

5、理解递归程序的编写。

二、实验内容和主要步骤

专题:类和对象基础

        1、掌握类的定义。

        2、掌握类的使用——创建实例(对象)。

        3、掌握set、get方法的本质。

        4、初步掌握构造方法。

专题:方法

  1. 方法的传值调用
  2. 方法重载
  3. 变量作用域
  4. 可变长度参数方法
  5. 递归编程

三、实验结论和思考

1、实验专题“类和对象基础”中“代码6:InitOrder.java”的问题:

如果L20处,我们这样改为:“C myc = new C(2);” 试问,myc这个C类对象变量所在空间在什么区域?画一个示意图描述。


2定义一个三角形类Triangle,要求提供3条边长信息,以及求周长、求面积等行为。然后再定义一个测试类TriangleTest,作为主程序来测试Triangle类。一些要求如下:

(1)边长数据类型为普通整型即可,不能为负数。

(2)提供一个boolean型的私有成员canTri,用于判断三条边长能否构成三角形,并用公开方法isTri返回该私有成员变量canTri的状态。

(3)提供求周长的方法。

(4)提供求面积的方法。使用海伦公式:

已知三角形的三边长分别为a、b、c,根据海伦公式则三角形的面积公式如下图所示,其中公式里的p为半周长:

输出示例1:(其中红色字体都是变化的)

边长为345的三角形的周为:12,面积为:6.000

输出示例2:(其中红色字体都是变化的)

边长1345不能构成三角形

作答要求:

(1)编写程序,在下方贴出程序代码。

import java.lang.Math;
import  static java.lang.System.out;
class Triangle {
int a,b,c;//定义三角形边长
private boolean canTri;
public boolean isTri(int a,int b,int c) {//判断三条边长能否构成三角形
	if((a+b>c)&&(a-b<c))  
		return true;
	else 	 
		return false;	 
}
int getCircumference() {//三角形周长方法
	return a+b+c;
} 
double getArea() {//三角形面积方法
	int p=getCircumference()/2;
	double s=Math.sqrt(p*(p-a)*(p-b)*(p-c));
	return s;
}
String getInfo() {//返回三边长和三角形周长、面积
	canTri=isTri(a,b,c); //判断三条边长能不能构成三角形 
	if(canTri) {//三条边能构成三角形
	int d=getCircumference();
	double e=getArea();
	String str=String.format("三角形的三边长为:%d,%d,%d,周长是%d,面积是%f",a,b,c,d,e);
	return str;}
	else//三条边不能构成三角形
		return ("该三条边不能构成一个三角形,无法求周长与面积");
}
}
public class TriangleTest {//测试类
	public static void main(String[] args) {
		Triangle T=new Triangle();
		T.a=23;
		T.b=14;
		T.c=15;
		String t=T.getInfo();
		out.println(t);
	}
}

(2)求出边长为23,14和15的三角形的周长和面积,在下方给出执行结果的截图。

3编写递归方法,将一个int型数据逆序输出,比如1234,输出为4321。

参考实验专题“方法”中的“递归编程”小节,补充完成“代码9:IntReverse类”中的reverse方法。要求:

(1)不能改变主方法中的调用语句。

(2)只需编写reverse方法体。

作答要求:

在下面粘贴reverse方法的定义代码(补充完善之后的方法代码,包括方法声明的头部)。

public static void reverse(int x){
		  /* 请完成本方法体,实现将x的值逆序输出,即x=1234,则输出4321 */
		if(x<10)//只有一个数字,直接输出
			out.println(x);
		else {
			int n=x%10;//得到该数的高位并输出
		out.print(n);
		reverse(x/10);//递归输出逆序后的下一位
		}
    }

四、实验心得(必须填写)

        在设计求三角形周长面积方法时,一开始毫无头绪,在那冥想半天毫无头绪猴,我选择了去翻书和查看老师上课用的ppt,重温了一遍那个方法的构造重载等相关知识点,以及最后的代码实例“面向对象抽象编程--求圆柱体的体积”,我开始渐渐掌握了此类题目的做法,所以对于此次题目,我在Triangle类体里定义了成员变量a,b,c为三角形三边长,继而构造了求周长方法getCircumference()和求买面积方法getArea(),最后设计了方法getInfo去调用上述两个方法,输出结果。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tang_Fxiao_tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值