2021-01-14

编写一个Cal1类实现加减两种运算,然后编写另一个Cal2类实现
乘除两种运算

public class Cal1{
private int n1,n2; //省略了get/set方法
public long add(){//不会出现空指针问题,因为n1和n2是简单类型,默认值为0
return 0L+n1+n2;
}
public long sub(){
return 0L+n1-n2;
}
}
//Cal1 c1=new Cal1(); c1.setN1(100); c1.setN2(200); long res=c1.add();
public class Cal2 extends Cal1{
public double mul(){
return 1.*getN1()*getN2();
}
public double div(){
if(getN2()!=0)
return 1.*getN1()/getN2();//如果没有1.这个操作,则是整除计算
else
return Double.POSITIVE_INFINITY; //正负无穷大之分
}

建立3个类:居民、成人、官员。居民包含身份证号、姓名、出生
日期,而成人继承自居民,多包含学历、职业两项数据,官员则
继承自成人,多包含党派、职务两项数据。要求每个类的字段都
以属性的方式对外提供数据输入输出的功能

public class Resident{
private String idCard;//18位并且可能有字符,数值型数据的比较效率高于字符串
private String name;
private Date birth; //java.util.Date是系统提供的日期类型
//get/set方法....
public void setIdCard(String idCard) {
//针对传入的身份证号码进行合法性验证,如果数据不合法应该通过异常告知调用处或者赋默认值
if(idCard!=null && idCard.trim().length()==18)
this.idCard = idCard;
else
throw new RuntimeException("身份证号码不合法!");
}

}

public class Adult extends Resident{
private String education;//真实实现应该考虑使用枚举类型enum,以保证education的取值范围
private String vocation;//职业
//get/set方法....
}
public class Official extends Adult{
private String party;
private String duties;
//get/set方法....
}

编写一个控制台应用程序,完成下列功能,并回答提出的问题
1 创建一个类A,在构造函数中输出“A”,再创建一个类B,再构造函数中输出“B”
2 从A继承一个名为C的新类,并在C中创建一个成员变量B,不要为C创建构造函数
3 在main方法中创建类C的一个对象,写出运行程序后输出的结果
4 如果在C中也创建一个构造函数输出"C",整个程序运行的结果是什么

//一个文件中可以定义多个类,但是只能有一个public class
//public class到处可见,默认class只能同包可见
public class A{
public A(){System.out.println("A");}
}
class B{
public B(){System.out.println("B");}
}
class C extends A{
private B b=new B();
public C(){System.out.println("C");}
}
class Test {
public static void main(String[] args){
C c=new C();//输出结果为先A后B
}
}

创建一个类,它存储一个int数据成员,当该数据成员被存储时将
其乘以100,当其被读取时将其除以100
p

public class A{
private int data;
public void setData(int data){
if(data<=Integer.MAX_VALUE/100)
this.data=data*100;
else
throw new RuntimeException("数据太大了!");
}
public int getData() {
return this.data/100;
}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值