小白学Java基础案例(二)

写在前面

  • 关于题目
    涉及Java语言基础、类与对象基础、类的设计与封装、类继承与接口的设计、集合框架与泛型、异常类、嵌套类、枚举类型、输入/输出流、多线程与网络编程基础等大内容,知识点包括标识符、关键字与字面值、变量与类型、运算符与表达式、语句、类与对象、Math类、字符串:String类与StringBuffer类、数组对象、包装类、大数处理与BigInteger类、时间处理、类设计的基本思路、矩形类的初步设计、类声明与域的定义……
    题目来自实验课老师布置,由于课本不在手边,所以涉及课本例题的,没有办法提供原例题。
  • 关于答案
    主要是我作业里自己写的代码,如果和老师发的参考答案差别较大,会发上两个答案。能力有限,如果有错误的地方,欢迎指正。
  • 持续更新中……

使用教材

  • Java面向对象程序设计
    出版社:高等教育出版社
    作者: 苏健
    版次:1
    重点项目: “十一五”国家规划课题研究成果

实验八:类的设计与封装

  1. 找出下列代码的问题并尝试改正,并说明错误原因。
class Example {
   
	int i;
	int j;
	Example(){
   
		System.out.println("Example( )");
		this(0,0);						//只能在构造器的第一句代码中使用this(参数)
	}
	Example(int i){
   
		System.out.println("Example(int i)");
		j = 0;
		i = i;
	}
	public Example(int i, int j) {
   
		System.out.println("Example(int i,int j)");
		this(i);						//同上,并且不能在方法中通过this(参数)调用构造器
		j = j;
	}
	void Example(double i) {
   
		i = (int)i;
		j = 0;
	}
}

//注意局部变量和成员变量的关系,形参是局部变量,如果两者同名,在局部变量的作用域范围内,成员变量会被隐藏,需要使用this来访问同名成员变量。

  1. 阅读以下两段代码并给出其运行结果,然后上机验证。
class Frog {
   
	static int frogCount = 0;
	
	public Frog() {
   
		frogCount += 1;
	}
	public static void main(String[] args) {
   
		new Frog();
		new Frog();
		new Frog();
		System.out.println("Frog count is now "+ frogCount);
	}
}

//运行结果:
Frog count is now 3
class Frog {
   
	int frogCount = 0;
	
	public Frog() {
   
		frogCount += 1;
	}
	public static void main(String[] args) {
   
		new Frog();
		new Frog();
		new Frog();
		System.out.println("Frog count is now "+ frogCount);
	}
}

//运行出错,因为frogCount是实例变量,而静态方法不能访问实例变量。
  1. 阅读以下代码,不改变x的定义,改正错误并尝试输出x的值。
class Foo {
   
	int x = 3;
	 public static void main(String[] args) {
   
		 System.out.println("x is "+x);
	 }
}

//运行结果:
x is 3
//老师参考答案
Foo f = new Foo( );
System.out.println("x is " + f.x);
  1. 判断下列代码的输出结果。
public class T37 {
   
	static {
   	System.out.print("C");}
	{
   	System.out.print("A");}
	T37(){
   	System.out.print("B");}
	public static void main(String[] args) {
   
		T37 t1 = new T37();
		T37 t2 = new T37();
	}
}

//运行结果:
CABAB
  1. 从类设计者的角度,实现如下要求的Student类。然后从类使用者的角度,新建若干Student对象,并使用Student的方法。
    1.每个对象需要保存“身份证号/ 姓名/性别/专业/住址”等信息,其中身份证/姓名和性别的值不可为空。(构造器应该怎么设计?)
    2.提供返回对象主要信息的函数String toString( );
    3.提供返回对象年龄的函数;
    4.提供函数输出所有的Student对象个数(参考课本的static nextid)。
import java.util.Calendar;
import java.util.Date;

class Student{
   
	String idCard;
	String name;
	String gender;
	String major;
	String address;
	int id;
	static int nextId;
	
	Student(String idCard,String name,String gender,String major,String address){
   
		this.idCard = idCard;
		this.name = name;
		this.gender = gender;
		this.major = major;
		this.address = address;
		id = nextId;
		nextId++;
	}
	Student(Student stu) {
   
		this(stu.idCard,stu.name,stu.gender,stu.major,stu.address);
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值