【Java】内部类、垃圾回收

定义MyRectangle矩形类

  • 类中有4个私有的整型域,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);
  • 类中定义有4个int参数的构造方法,用来初始化类对象;
  • 类中定义没有参数的构造方法,在此构造方法中使用this关键字调用上述构造方法,分别为四个参数设置为(5,5),(20,20);
  • 类中还有以下方法:
    getW( )——计算矩形的宽度;
    getH( )——计算矩形的高度;
    area( )——计算矩形的面积;
    toString( )——把矩形的宽、高和面积等信息作为为字符串返回。
  • 编写应用程序使用MyRectangle类。
class MyRectangle{
	int xu,yu,xd,yd;
	public MyRectangle(int xu,int yu,int xd,int yd){
		this.xu=xu;
		this.yu=yu;
		this.xd=xd;
		this.yd=yd;
	}
	public MyRectangle(){
		this(5,20,5,20);
	}
	public int getW(){
		return yu-xu;
	}
	public int getH(){
		if(yu-xd>0)
		return yu-xd;
		else return xd-yu;
	}
	public int area(){
		return getW()*getH();
	}
	public void to_String(){
		System.out.println("宽:"+getW()+" 高:"+getH());
		System.out.println("面积:"+area());
	}
}
public class hello {
	public static void main(String[] args){
		MyRectangle rc1=new MyRectangle();
		MyRectangle rc2=new MyRectangle(2,3,5,3);
		rc1.to_String();
		rc2.to_String();
	}
}

编写Triangle三角形类

  • 合理定义一个三角形类Triangle,成员属性包括3条边,能否构成三角形的标志;成员方法包括构造方法、修改3条边、计算面积。
  • 写一测试类,测试自定义三角形类Triangle是否正确。
package work;
class Triangle{
	private int a,b,c;
	boolean right;
	public Triangle(int xa,int xb,int xc) {
		a=xa;b=xa;c=xc;
		if(a+b>c&&a+c>b&&b+c>a)	right=true;
		else right =false;
	}
	public void cg_abc(int xa,int xb,int xc) {
		a=xa;b=xa;c=xc;
		if(a+b>c&&a+c>b&&b+c>a)	right=true;
		else right =false;
	}
	public void area() {
		float d=(float) ((a+b+c)/2.0);
		d=(d-a)*(d-b)*(d-c);
		System.out.printf("三角形的面积:%.2f%n",Math.sqrt(d));
	}
	
}
public class test1{

	public static void main(String[] args) {
		Triangle t1=new Triangle(3,4,5);
		t1.area();
	}

}

程序设计

定义一个外部类Outer

  • 声明一个 String类型变量Str,初始化为“CSDN大学”。
  • 定义一个内部类Inner,类有如下属性和方法:
    • 声明一个String类型变量Str,初始化为“计算机学院”。
    • 定义一个返回类型为String的方法Linking。在方法内部声明一个String类型变量Str,初始化为“软件工程专业”;返回局部变量Str、内部类Inner的实例变量Str。

定义一个类Test

  • 创建一个Outer类的对象Out1。
  • 创建Out1的一个Inner内部类对象Inner_one。
  • 输出Inner_one的Linking方法的返回值。
class Outer{
	String Str;
	public Outer(){
		Str="CSDN大学";
	}
	class Inner{
		String Str;
		public Inner(){
			this.Str="计算机学院";
		}
		public String Linking() {
			String Str="软件工程专业";
			return Str+this.Str;
		}
	}
}
public class test1 {
	public static void main(String[] args) {
		Outer Out1=new Outer();
		System.out.println(Out1.new Inner().Linking());
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cout0

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

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

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

打赏作者

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

抵扣说明:

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

余额充值