速(尚)学堂第四章Java面向对象基础章末作业自写答案

速(尚)学堂第四章Java面向对象基础章末作业自写答案

第一次在CSDN发文章,自己还是一个大二学生,正在学JAVA,学习了第四章后,对章末作业做了解答,全部手工自己写的,选择题也有一些自己的看法,如有错误欢迎指正,共同进步,高手勿喷,见笑了。

选择题
1.B //JAVA程序中就算没有定义构造器(即构造方法或构造函数),编译器也会自动定义一个无参构造函数。

2.D //创建了两个引用类型的变量pt1,pt2,分别指向带实际参数(3,3)、(4,4)的对象,输出pt1.x即输出pt1指向对象的x值为3,输出Pt2.x即输出pt2指向对象的x值为4,故输出pt1.x+pt2.x结果为7

3.AC //java的main主方法就是静态的,若使用类中非静态方法,必须用new关键字创建对象后才能使用该方法,若使用静态方法,可以直接使用故A对,B错。静态方法可以直接使用类名调用,格式“类名.该静态方法名”,C对。在静态方法中不能使用this关键字,this本质为目前创建好的对象,而静态方法是在方法区(特殊的堆)内,对象不在方法区内,不能使用this来访问对象,故D错

4.AC //类方法即静态方法,由第三题分析可知,静态方法不能使用this关键字,A错。类方法即静态方法,静态方法调用静态方法可以直接调用,故B对。使用其他类中的类方法,同一包中可以通过“类名.类方法名”的方式使用那个,不在同一个包中时需导包然后“类名.类方法名”使用,C错。类方法即静态方法,实例方法即普通非静态方法,静态方法中调用非静态方法需要创建对象,故D对

5.C //创建了引用类型的变量t,使用new创建了对象,并把对象的地址附给了t,t就指向了该对象,执行count1方法,修改了对象中的count的值,变为10,count1方法结束,栈帧销毁,但是变量的值被覆盖,故再执行count2,count的值还是为10.故选C

编码题

  1. 编写 Java 程序用于显示人的姓名和年龄。定义一个人类Person。 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。定义构造方法用来初始化数据成员。再定义显示(display()) 方法将姓名和年龄打印出来。在 main 方法中创建人类的实例然后将信息显示。
/*
 * 编写 Java 程序用于显示人的姓名和年龄。
 * 定义一个人类Person。 该类中应该有两个私有属性: 姓名 (name) 和年龄 (age) 。
 * 定义构造方法用来初始化数据成员。再定义显示(display()) 方法将姓名和年龄打印出来。
 * 在 main 方法中创建人类的实例然后将信息显示
 */
class Person{
	private String name;
	private int age;
	
	//构造方法
	public Person(String name, int age) {
		this.age = age;
		this.name = name;
	}
	
	void display() {
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
	}
}
public class FinalTest {
	public static void main(String[] args) {
		Person P = new Person("这里是名字", 999);
		P.display();
	}	
}

第一题运行结果

2. 定义一个圆类——Circle,在类的内部提供一个属性:半径®,同时 提供 两个 方 法 : 计算 面积 ( getArea() ) 和 计算 周长(getPerimeter()) 。 通过两个方法计算圆的周长和面积并且对计算结果进行输出。最后定义一个测试类对 Circle 类进行使用。


/**
 * 章末测试
 * @author 皮
 *
 */
/*
 * 定义一个圆类——Circle,在类的内部提供一个属性:半径(r)
 * 同时 提供 两个 方 法 : 计算 面积 ( getArea() )和 计算 周长(getPerimeter()) 。 
 * 通过两个方法计算圆的周长和面积并且对计算结果进行输出。最后定义一个测试类对 Circle 类进行使用。
 */
class Cirle{
	int r;
	
	public Cirle(int r) {
		this.r = r;
	}
	public int getArea() {
		int area = (int)(Math.PI*r*r);
		System.out.println("该圆的面积为:"+area);
		return area;
	}
	
	public int getPerimeter() {
		int perimeter = (int)(2*Math.PI*r);
		System.out.println("该圆的周长为:"+perimeter);
		return perimeter;
	}
}

public class FinalTest02 {
	public static void main(String[] args) {
		Cirle C = new Cirle(10);
		C.getArea();
		C.getPerimeter();
	}
}

第二题运行结果
 3. 构造方法与重载:定义一个网络用户类,信息有用户 ID、用户密码、 email 地址。在建立类的实例时把以上三个信息都作为构造函数的参数输入, 其中用户 ID 和用户密码时必须缺省时 email地址是用户 ID 加上字符串"@gameschool.com"。


/**
 * 章末测试
 * @author 皮
 *
 */
/*
 * 构造方法与重载:定义一个网络用户类,信息有用户 ID、用户密码、 email 地址。
 * 在建立类的实例时把以上三个信息都作为构造函数的参数输入,
 *  其中用户 ID 和用户密码时必须缺省时 email地址是用户 ID 加上字符串"@gameschool.com"。
 */
class NetUser{
	int id;
	String pwd;
	String emailAdd;
	
	public NetUser(int id, String pwd) {
		this.id = id;
		this.pwd = pwd;
		emailAdd = this.id+"@gameschool.com";
	}
	
	public NetUser(int id,String pwd,String emailAdd) {
		this(id,pwd);//调用了上面定义的构造器
		this.emailAdd = emailAdd;
	}
	
	public void Test() {
		System.out.println(id+"\t"+pwd+"\t"+emailAdd);
	}

}
public class FinalTest03 {
	public static void main(String[] args) {
		NetUser n = new NetUser(123456,"0001n");
		NetUser n1 = new NetUser(123456, "0002n", "00112233@qq.com"); 
		n.Test();
		n1.Test();
	}
}

在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值