diff --git a/封装.txt b/封装.txt new file mode 100644 index 0000000..ae0c5e4 --- /dev/null +++ b/封装.txt @@ -0,0 +1,409 @@ + +/********* begin *********/ + Cat a = new Cat(); + a.setName("大花猫"); + a.setAge(6); + a.voice(); + a.eat(); + a.show(); + /********* end *********/ + + // 实例化一个Dog对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息 + /********* begin *********/ + Dog b = new Dog(); + b.setName("大黑狗"); + b.setAge(8); + b.voice(); + b.eat(); + b.show(); + /********* end *********/ + + } +} + +class Animal { + /********* begin *********/ + private String name; + private int age; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public void show() { + System.out.println(name+age+"岁"); + } + /********* end *********/ + +} + +class Cat extends Animal { + // 定义Cat类的voice()和eat()方法 + /********* begin *********/ + + public void voice() { + System.out.println(super.getName()+"喵喵叫"); + } + + public void eat() { + System.out.println(super.getName()+"吃鱼"); + } + /********* end *********/ +} + +class Dog extends Animal { + // 定义Dog类的voice()和eat()方法 + /********* begin *********/ + public void voice() { + System.out.println(super.getName()+"汪汪叫"); + } + + public void eat() { + System.out.println(super.getName()+"吃骨头"); + } + /********* end *********/ + + + + + + + + + + + + + + +package case3; + +public class superTest { + public static void main(String[] args) { + // 实例化一个Student类的对象s,为Student对象s中的school赋值,打印输出信息 + /********* begin *********/ + Student s=new Student("张三",18); + s.school="哈佛大学"; + s.print(); + /********* end *********/ + } +} +class Person { + /********* begin *********/ + String name; + int age; + Person(String name,int age){ + this.name=name; + this.age=age; + } + /********* end *********/ +} +class Student extends Person { + /********* begin *********/ + Student(String name,int age){ + super(name,age); + } + String school; + void print(){ + System.out.println("姓名:"+name+",年龄:"+age+",学校:"+school); + } + /********* end *********/ +} + + + + + + + + + +package case4; + +public class overridingTest { + public static void main(String[] args) { + // 实例化子类对象s,调用talk()方法打印信息 + /********* begin *********/ + Student s=new Student("张三",18,"哈佛大学"); + s.talk(); + /********* end *********/ + + } +} + +class Person { + /********* begin *********/ + public String name; + public int age; + void talk(){ + System.out.println("我是:"+name+",今年:"+age+"岁"); + } + /********* end *********/ +} + +class Student extends Person { + /********* begin *********/ + String school; + Student(String name,int age,String school){ + this.name=name; + this.age=age; + this.school=school; + } + void talk(){ + System.out.println("我是:"+name+",今年:"+age+"岁,我在"+school+"上学"); + } + /********* end *********/ +} + + + + + + + + + + + + + + + +package case5; + +public class abstractTest { + public static void main(String[] args) { + /********* begin *********/ + // 分别实例化Student类与Worker类的对象,并调用各自构造方法初始化类属性。 + Student s=new Student("张三",20,"学生"); + Worker w=new Worker("李四",30,"工人"); + s.talk(); + w.talk(); + // 分别调用各自类中被复写的talk()方法 打印信息。 + /********* end *********/ + } +} + +// 声明一个名为Person的抽象类,在Person中声明了三个属性name age occupation和一个抽象方法——talk()。 +abstract class Person { + /********* begin *********/ + String name; + int age; + String occupation; + abstract void talk(); + /********* end *********/ +} + +// Student类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息 +class Student extends Person { + /********* begin *********/ + Student(String name,int age,String occupation){ + this.name=name; + this.age=age; + this.occupation=occupation; + } + void talk(){ + System.out.println("学生——>姓名:"+name+",年龄:"+age+",职业:"+occupation+"!"); + } + /********* end *********/ +} + +// Worker类继承自Person类,添加带三个参数的构造方法,复写talk()方法 返回姓名、年龄和职业信息 +class Worker extends Person { + /********* begin *********/ + Worker(String name,int age,String occupation){ + this.name=name; + this.age=age; + this.occupation=occupation; + } + void talk(){ + System.out.println("工人——>姓名:"+name+",年龄:"+age+",职业:"+occupation+"!"); + } + /********* end *********/ +} + + + + + + + + + + + + + + + + +package case6; + +public class finalTest { + public static void main(String args[]) { + Bike1 obj = new Bike1(); + obj.run(); + + Honda honda = new Honda(); + honda.run(); + + Yamaha yamaha = new Yamaha(); + yamaha.run(); + } +} +//不可以修改 final 变量的值 +// final方法,不可以重写 + 不可以扩展 final 类 +class Bike1 { + int speedlimit = 90; + + void run() { + speedlimit = 120; + System.out.println("speedlimit=120"); + } +} + +class Bike2 { + void run() { + System.out.println("running"); + } +} + +class Honda extends Bike2 { + void run() { + System.out.println("running safely with 100kmph"); + } +} + +class Bike3 { +} + +class Yamaha extends Bike3 { + void run() { + System.out.println("running safely with 100kmph"); + } +} + + + + + + + + + + + + + + + + + +package case7; + +public class interfaceTest { + public static void main(String[] args) { + // 实例化一Student的对象s,并调用talk()方法,打印信息 + /********* begin *********/ + Student s=new Student(); + System.out.println(s.talk()); + /********* end *********/ + } +} + +// 声明一个Person接口,并在里面声明三个常量:name、age和occupation,并分别赋值,声明一抽象方法talk() +interface Person { + /********* begin *********/ + final String name="张三"; + final int age=18; + final String occupation="学生"; + public abstract String talk(); + /********* end *********/ +} + +// Student类继承自Person类 复写talk()方法返回姓名、年龄和职业信息 +class Student implements Person { + /********* begin *********/ + public String talk() { + return "学生——>姓名:" + this.name + ",年龄:" + this.age + ",职业:" + + this.occupation + "!"; + } + /********* end *********/ +} + + + + + + + + + + + + + + + +package case8; + +public class TestPolymorphism { + public static void main(String[] args) { + // 以多态方式分别实例化子类对象并调用eat()方法 + /********* begin *********/ + Animal a=new Dog(); + a.eat(); + Animal b=new Cat(); + b.eat(); + Animal c=new Lion(); + c.eat(); + /********* end *********/ + } +} + +// Animal类中定义eat()方法 +abstract class Animal { + /********* begin *********/ + abstract void eat(); + /********* end *********/ +} + +// Dog类继承Animal类 复写eat()方法 +class Dog extends Animal { + /********* begin *********/ + public void eat(){ + System.out.println("eating bread..."); + } + /********* end *********/ +} + +// Cat类继承Animal类 复写eat()方法 +class Cat extends Animal { + /********* begin *********/ + public void eat(){ + System.out.println("eating rat..."); + } + /********* end *********/ +} + +// Lion类继承Animal类 复写eat()方法 +class Lion extends Animal { + /********* begin *********/ + public void eat(){ + System.out.println("eating meat..."); + } + /********* end *********/ +}