1).Person类有name,age,salary属性,要求实现至少两个构造方法,并且属性私有,提供对应的getter、setter。
2).覆写toString方法,要求在System.out.println()函数中传递Person对象能打印出三个属性值而不是对象地址。
3).覆写equals方法,要求两个Person类对象的值相同时返回true。
class Person{
private String name;
private int age;
private double salary;
public Person(){
System.out.println("无参构造");
}
public Person(String name,int age,double salary){
this.age = age;
this.name = name;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "姓名:"+name+" "+"年龄:"+age+" "+"工资:"+salary;
}
@Override
public boolean equals(Object obj) {
if(obj == null)
return false;
if(this == obj)
return true;
if(!(obj instanceof Person))
return false;
Person per = (Person)obj;
return this.salary==per.salary && this.age==per.age && this.name==per.name;
}
}
说出下列程序的执行结果,并说明原因:
Integer a = 55;
Integer b = 55;
System.out.println(a==b);//true,"= ="是值比较;
System.out.println(a==new Integer(55));//false
System.out.println(a.equals(new Integer(55)));//true
Integer c = 129;
Integer d = 129;
System.out.println(c==d);//false,在-128 至 127 范围内的赋值,Integer 对象是在IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象
1).定义一个MulException类继承Exception类,要求两数相乘等于100报错,在主类中定义一个方法,在方法中抛出此异常,在主方法观察结果。
2).定义一个DivException类继承RuntimeException类,要求两数相除等于2报错,在主类中定义一个方法,在方法中抛出此异常,在主方法观察结果。
class MulExcepion extends Exception{
public MulExcepion(String msg) {
super(msg);
}
}
class DivException extends RuntimeException{
public DivException(String msg){
super(msg);
}
}
public class Test{
public static void main(String[] args) {
try {
Mul();
} catch (Exception e) {
e.printStackTrace();
}
Div();
}
public static void Div(){
int n=2,m=1;
int tmp;
tmp=n/m;
if(tmp==2){
throw new DivException("两数相除不能等于2");
}
}
public static void Mul() throws Exception{
int n=100,m=1;
int tmp;
tmp=n*m;
if(tmp==100){
throw new MulExcepion("两数相乘不能等于100");
}
}
}
本文详细介绍了Java中面向对象的实现,包括Person类的属性、构造方法、getter和setter方法,以及toString和equals方法的覆写。同时,通过实例解释了Integer对象在不同情况下的比较行为,并演示了自定义异常类MulException和DivException的创建与抛出过程。

1156

被折叠的 条评论
为什么被折叠?



