Java 构造器与this关键字练习 -34天 学习笔记

构造器 练习9

  1. 在前面定义的Person类中添加构造器, 利用构造器设置所有人的age属
    性初始值都为18。

  2. 修改上题中类和构造器, 增加name属性,使得每次创建Person对象的同
    时初始化对象的age属性值和name属性值。

  3. 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;
   }
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值