第七章练习题part2

本文详细分析了第七章的编程练习题,包括第八题的匿名对象及其生命周期,第九题的music类设计,第十题的前置和后置自增操作,第十一题的double类型方法调用,第十二题的构造器复用,以及第十三题的Circle类与动态计算面积。通过这些问题,深入理解Java中的对象、方法、构造器和属性修改等概念。
摘要由CSDN通过智能技术生成

第七章练习题part2

第八题

代码输出结果分析题
代码

public class Test{
   
	int count = 9;
	public void count1(){
   
		count = 10;
		System.out.println("count1=" + count);
	}
	public void count2(){
   
		System.out.println("count1=" + count++);
	}
	public static void main(String[] args){
   
		new Test().count1();
		Test t1 = new Test();
		t1.count2();
		t1.count2();
	}
}

输出结果

在这里插入图片描述

流程分析
new Test()为匿名对象,没有名字,不指向栈中的任何对象地址,用一次就被销毁
new Test().count1()即匿名对象调用方法count1():Test类中的属性count的初始值为9,在count1中执行
count = 10
;被赋值变成了10,所以此处也是输出10
t1.count2();在堆中开辟新的空间并指向栈中的t1,同时完成属性初始化,所以空间内存储了count = 9,t1调用count2(),count++先运算再自增,所以输出coutn1=9,同时空间内的count = 9----->count = 10;
二次执行t1.count2();原理同上所述,因为执行过上述语句后count = 10,所以输出count1=10;同时空间内的count = 10----->count = 11;
内存图如下
在这里插入图片描述

第九题

题目描述:定义music类,有音乐名name、音乐时长times、播放play功能和返回本身属性信息的功能方法getinfo
代码

public class HomeWork09 {
   
	public static void main(String[] args){
   
		Music m1 = new Music("笑傲江湖曲", 3.20);
		m1.play();
		System.out.println(m1.getInfo());
	}
}
//定义music类,有音乐名name、音乐时长times、播放play功能和
//返回本身属性信息的功能方法getinfo
class Music{
   
	String name;
	double times;
	//构造器完成对象属性的初始化
	public Music(String name, double times){
   
		this.name = name;
		this.times = times;
	}
	//播放功能,方法play
	public void play(){
   
		System.out.println(&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值