面向对象进阶--私有属性/方法、继承、四中访问修饰符、抽象类

 

 1 package com.unit6.test;
 2 
 3 public class Dog {
 4     private String name;  //私有属性,不可以被外部直接访问
 5     private String pwd;
 6     private int age;
 7     
 8     public int getAge(String uname,String upwd) {
 9         if(uname=="aaa" && upwd=="123") {
10             return age;
11         }else {
12             return 0;
13         }
14         
15     }
16     
17     public void setAge(int age) {
18         if(age<=20) {
19             this.age = age;
20         }else {
21             System.out.println("年龄输入错误!");
22         }
23         
24     }
25     
26     public void eat() {
27         System.out.println("狗正在吃饭!");
28         System.out.println("狗正在喝水!");
29         System.out.println("吃饱喝足了!");
30         f();
31     }
32     
33     private void f() {
34         System.out.println("狗在接飞盘");
35     }
36     
37     
38 }

 

 1 package com.unit6.test;
 2 
 3 public class Test4 {
 4 
 5     public static void main(String[] args) {
 6 //        Dog d=new Dog();
 7 //        d.setAge(12);
 8 //        int age=d.getAge("aaa", "123");
 9 //        System.out.println(age);
10 //        
11 //        d.eat();
12     
13         Card card=new Card();
14         card.setId("1234452545453554");
15         System.out.println(card.getId());
16         
17         card.setPwd("112131");
18         card.setBalance(200);
19         card.cun(30000);
20         card.getBalance();
21         
22     }
23 }

 

 1 package com.unit6.test;
 2 
 3 public class Card {
 4     //例:升级银行卡
 5     private String id;
 6     private String pwd;
 7     private double balance;
 8     
 9     public String getId() {
10         return id;
11     }
12     public void setId(String id) {
13         if(id.length()==16) {
14             this.id = id;
15         }else {
16             System.out.println("您输入的卡号不正确");
17         }
18     }
19     
20     public String getPwd() {
21         return pwd;
22     }
23     public void setPwd(String pwd) {
24         if(pwd.length()==6) {
25             this.pwd = pwd;
26         }else {
27             System.out.println("您输入的密码位数不正确");
28         }
29     }
30     
31     public double getBalance() {
32         return balance;
33     }
34     public void setBalance(int balance) {
35         if(balance>0) {
36             this.balance = balance;
37         }else {
38             System.out.println("初始金额必须大于0");
39         }
40         
41     }
42     
43     public void cun(int money) {
44         if(money>0) {
45             this.balance+=money;
46             if(money>20000) {
47                 jl();
48             }
49         }else {
50             System.out.println("金额输入错误");
51         }
52         System.out.println("存入"+money+"元,余额:"+this.balance+"元");
53     }
54     
55     private void jl() {
56         this.balance=this.balance*(1+0.003);
57         System.out.println("大额存款,奖励"+this.balance*0.003+"元");
58     }
59 }

 

---------------------------------------------

 1 package com.unit8.test;
 2 
 3 //父类:定义公共属性和方法
 4 public abstract class Pet {  //abstract抽象类
 5     String name;  //父类的属性和方法不要设置为私有
 6     int age;
 7     final String color;
 8     public String type="xxx";
 9     
10 
11     public Pet(String name, int age, String color) {
12         System.out.println("Pet的有参构造方法被调用了!");
13         this.name = name;
14         this.age = age;
15         this.color = color;
16     }
17     
18 //    //父类无参构造方法可以被继承,但是需要手动写出来
19 //    public Pet() {
20 //        System.out.println("Pet的无参构造方法被调用了!");
21 //    }
22 
23     public void eat() {
24         System.out.println("正在吃。。");
25     }
26     
27     public void run() {
28         System.out.println("正在跑。。");
29     }
30     
31     //抽象方法没有方法体
32     //父类定义的抽象方法,子类必须实现(重写),除非子类也是抽象类
33     public abstract void t();
34     
35 }

 

 1 package com.unit8.test;
 2 
 3 public class Dog extends Pet{
 4     String type="国产狗狗";
 5     String stain;
 6     
 7     public Dog(String name, int age, String color,String stain) {
 8         super(name,age,color);  //手动调用父类的构造方法,需要写在子类构造方法的第一行
 9         this.stain=stain;
10     }
11     
12     public void jump() {
13         System.out.println("正在跳。。");
14     }
15 
16     public void eat() {
17         System.out.println("狗狗正在吃。。");
18     }
19     
20     public void show() {
21         System.out.println("正在show。。"+this.stain);
22         super.run();
23         System.out.println(super.color);
24     }
25     
26     
27     //重写Object中定义的equals方法
28     //将对象作为参数传入方法
29     public boolean equals(Dog d) {
30         if(this.name.equals(d.name) && this.age==d.age && this.color.equals(d.color) && this.stain.equals(d.stain)) {
31             return true;
32         }else {
33             return false;
34         }
35     }
36     
37     public void t() {
38         System.out.println("t");
39     }
40     
41 }

 

 1 package com.unit8.test;
 2 
 3 public class Cat extends Pet{
 4     public Cat(String name, int age, String color) {
 5         super(name,age,color);  //手动调用父类的构造方法,需要写在子类构造方法的第一行
 6     }
 7     
 8     public void t() {
 9         System.out.println("t");
10     }
11     
12 }

 

 1 package com.unit8.test;
 2 
 3 public class test1 {
 4     public static void main(String[] args) {
 5 //        Dog d=new Dog("小何",5,"黑色","哈哈");
 6 //        d.show();
 7 //        d.type="hh";
 8 //        
 9 //        final int a=12;
10 //        a=20;
11         
12 //        Object obj=new Object();
13 //        Dog d1=new Dog("小何",5,"黑色","哈哈");
14 //        Dog d2=new Dog("小何",5,"黑色","哈哈");
15 //        
16 //        //Object类中的.equals方法和==意义相同
17 //        //字符串是一个类,也有.equals方法,但是字符串类对.equals方法实现了重写
18 //        System.out.println(d1.equals(d2));
19         
20         
21 //        Pet p=new Pet("小何",5,"黑色");
22         
23         Dog d=new Dog("小何",5,"黑色","哈哈");
24         d.t();
25     }
26     
27 }

---------------------------------------------

 

---------------------------------------------

 

 1 package com.unit9.test;
 2 
 3 public abstract class Person {
 4     String name;
 5     String address;
 6     
 7     public Person(String name, String address) {
 8         super();
 9         this.name = name;
10         this.address = address;
11     }
12     
13     public Person() {
14         
15     }
16     
17     public abstract void add();
18     
19     public void show() {
20         System.out.println("show方法被调用了");
21     }
22 
23 }

 

 1 package com.unit9.test;
 2 
 3 public class Emp extends Person{
 4     int id;
 5     double salarys;
 6     int year;
 7 
 8     public Emp(String name, String address,int id,double salarys,int year) {
 9         super(name, address);
10         this.id=id;
11         this.salarys=salarys;
12         this.year=year;
13     }
14     
15     public Emp() {
16         
17     }
18 
19     @Override
20     public void add() {
21         System.out.println("普通员工,涨薪20%");
22         this.salarys=this.salarys*1.2;
23         System.out.println("当前员工工资为:"+this.salarys);
24         
25     }
26 
27 }

 

 1 package com.unit9.test;
 2 
 3 public class Manager extends Emp{
 4     String level;
 5 
 6     public Manager(String name, String address, int id, double salarys, int year,String level) {
 7         super(name, address, id, salarys, year);
 8         this.level=level;
 9     }
10 
11     public Manager() {
12         
13     }
14     
15     public void add() {
16         System.out.println("经理,涨薪30%");
17         this.salarys=this.salarys*1.3;
18         System.out.println("当前员工工资为:"+this.salarys);
19     }
20 }

 

 1 package com.unit9.test;
 2 
 3 public class test {
 4 
 5     public static void main(String[] args) {
 6 //        Emp e=new Emp("zhang","徐汇",1,10000,24);
 7 //        e.add();
 8         
 9         Manager m=new Manager("zhang","徐汇",1,10000,24,"高级");
10         m.show();
11         m.add();
12 
13     }
14 }

------------------------------------------------

 

posted on 2020-06-21 15:39  cherry_ning  阅读(131)  评论(0)    收藏  举报

导航