构造器 练习9
-
在前面定义的Person类中添加构造器, 利用构造器设置所有人的age属
性初始值都为18。 -
修改上题中类和构造器, 增加name属性,使得每次创建Person对象的同
时初始化对象的age属性值和name属性值。 -
public class Demo01 { public static void main(String[] args) { //1. 在前面定义的Person类中添加构造器, 利用构造器设置所有人的age属性初始值都为18。 // Person p1 = new Person("Tom"); Person2 p1 = new Person2(); System.out.println(p1.getName()); System.out.println("年龄为" + p1.getAge()); p1.setAge(12); System.out.println("年龄为" + p1.getAge()); Person2 p2 = new Person2("Tom",21); System.out.println("name "+ p2.getName()+" age "+p2.getAge()); } } class Person2 { //属性 private String name; private int age; //构造器 public Person2() { age = 18; //无参构造 } public Person2(String n, int a) { name = n; age = a; } public int getAge() { return age; } public void setAge(int age) { if (age < 0 || age > 130) { //throw new RuntimeException("传入得数据非法"); System.out.println("传入得数据非法"); return; } this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Person |
---|
-name:String |
+setName(i: String) +getName(): String |
3.编写两个类, TriAngle和TriAngleTest, 其中TriAngle类中声明私有的底
边长base和高height, 同时声明公共方法访问私有变量。 此外, 提供类
必要的构造器。 另一个类中使用这些公共方法, 计算三角形的面积。
public class TriAngleText {
public static void main(String[] args) {
TriAngle t1 = new TriAngle();
t1.setBase(6);
t1.setHight(9);
System.out.println("长为 "+ t1.getBase()+"宽为 "+t1.getHight());
System.out.println("面积为"+t1.arae( t1.getBase(),t1.getHight()));
TriAngle t2 = new TriAngle(7,5);
System.out.println("长为 "+ t2.getBase()+"宽为 "+t2.getHight());
}
}
public class TriAngle {
private int base ;
private int hight;
public TriAngle(){
}
public TriAngle(int b,int h) {
this.base = b;
this.hight = h;
}
public int arae (int b,int h){
return (int) (b*h*0.5);
}
public void setBase(int b){
this.base = b;
}
public int getBase(){
return base;
}
public void setHight(int h){
this.hight = h;
}
public int getHight(){
return hight;
}
}
this 关键字练习
Boy | |
---|---|
-name:String -age:int | |
+setName(i: String) +getName(): String +setAge(i: int) +getAge(): int +marry(girl:Girl) +shout():void | |
Girl |
---|
-name:String -age:int |
+setName(i: String) +getName(): String +marry(boy:Boy) +compare(girl:Girl) |
public class BoyGirlText {
public static void main(String[] args) {
Boy boy = new Boy("魔力欧",21);
boy.shout();
Girl girl = new Girl("祝英台",19);
girl.marry(boy);
Girl girl1 = new Girl("朱丽叶",22);
int compare = girl1.compare(girl);
if(compare > 0){
System.out.println(girl1.getName()+"年龄大");
}else if(compare < 0){
System.out.println(girl.getName()+"年龄大");
}
}
}
public class Boy {
private String name;
private int age;
public Boy(){
}
public Boy(String name, int age){
this.name = name;
this.age = age;
}
public void setName(String i){
this.name = i;
}
public String getName(){
return name;
}
public void setAge(int i){
this.age = i;
}
public int getAge(){
return age;
}
public void marry(Girl girl){
System.out.println("我娶"+girl.getName());
}
public void shout (){
if(age >= 22 ){
System.out.println("你可以去登记结婚了");
}else{
System.out.println("你们不能登记结婚");
}
}
}
public class Girl {
private String name;
private int age;
public Girl(){
}
public Girl(String name, int age){
this.name = name;
this.age = age;
}
public void setName(String i ){
this.name = i;
}
public String getName(){
return name;
}
public void setAge(int i){
this.age = i;
}
public int getAge(){
return age;
}
public void marry(Boy boy){
System.out.println("我要嫁给他"+boy.getName());
boy.marry(this); //谁调用this就时谁marry girl
}
/**
* @description: 比较两个对象的大小。
* @param: girl
* @return: int 正数:当前对象大 负数:当前对象小 0:当前对象与形参对象相等
* @author xinZhong
* @date: 2021/4/3 19:16
*/
public int compare(Girl girl){
// if(this.age > girl.age){
// return 1;
// }else if(this.age < girl.age){
// return -1;
// }else{
// return 0;
// }
return this.age - girl.age;
}
}