面向对象进阶--私有属性/方法、继承、四中访问修饰符、抽象类
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) 收藏 举报
浙公网安备 33010602011771号