Java中4种“访问控制符,.多态,.数组的应用;数组的默认初始化;小知识;抽象类例子及注意事项,接口相关知识;

it2022-05-05  125

     1. Java中4种“访问控制符

    (1)private 表示私有,只有自己类能访问

    (2) default表示没有修饰符修饰,只有同一个包的类能访问

    (3)protected表示可以被同一个包的类以及其他包中的子类访问

    (4) public表示可以被该项目的所有包中的所有类访问

2.多态的应用

package Test; public class Test4 {     public static void main(String[] args) {         Animal a=new Animal();         Cry(a);         Dog d=new Dog();//第一种调用方法         Cry(d);         Cry(new Cat());//第二种调用方法

    }     static void Cry(Animal a){         a.shout();     } } class Animal {     public void shout() {         System.out.println("叫了一声");     } } class Dog extends Animal{     public void shout(){         System.out.println("旺旺");     } } class Cat extends Animal{     public void shout(){         System.out.println("喵喵");     } } 结果:叫了一声 旺旺 喵喵

3.数组的应用

public class Test5 {     public static void main(String[] args) {

        int a[]=new int[10];         for (int i = 0; i < 10; i++) {             a[i]=i;         }         for (int i = 0; i <10 ; i++) {             System.out.print(a[i]+" ");   //这样写可使结果在一行上         }         System.out.println();    //相当于换行符\n         User3 b[]=new User3[3];         b[0]=new User3("马育冰",1001);         b[1]=new User3("马育冰",1002);         b[2]=new User3("马育冰",1003);         for (int i = 0; i <b.length ; i++) {             System.out.println(b[i].name+" "+b[i].id);         }     } } class User3{     String name;     int id;     public User3(String name,int id){         this.name=name;         this.id=id;     } }

结果:0 1 2 3 4 5 6 7 8 9  马育冰 1001 马育冰 1002 马育冰 1003

4.数组的默认初始化

1

2

3

int a2[] = new int[2]; // 默认值:0,0

boolean[] b = new boolean[2]; // 默认值:false,false

String[] s = new String[2]; // 默认值:null, null

5.

定义类时,当类名与方法名相同时,只用写public +类名(){};当类名与方法名不同时,要写public +方法最后返回的类型+方法名(){};boolen为布尔型变量,返回结果只能是false或者true;当父类出现final时,父类的方法不能被子类使用;

6.抽象类例子及注意事项

public class Test8 { public static void main(String[] args) { Dog1 a=new Dog1(); a.shout(); a.seeDoor(); a.Cry(); } } abstract class Animals{ abstract public void shout(); abstract public void Cry(); } class Dog1 extends Animals{ public void shout(){ System.out.println("汪汪"); } public void seeDoor(){ System.out.println("看门"); } public void Cry(){ System.out.println("呜呜"); } } 结果:汪汪 看门 呜呜

抽象类的使用要点:

     1. 有抽象方法的类只能定义成抽象类

     2. 抽象类不能实例化,即不能用new来实例化抽象类。

     3. 抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。

     4. 抽象类只能用来被继承。//比如抽象类中不能出现

abstract public void Cry(){ System.out.println("呜呜"); }

     5. 抽象方法必须被子类实现。

7.接口相关知识

声明格式:

1

2

3

4

[访问修饰符]  interface 接口名   [extends  父接口1,父接口2…]  {

常量定义;  

方法定义;

}

定义接口的详细说明:

      1. 访问修饰符:只能是public或默认。

      2. 接口名:和类名采用相同命名机制。

      3. extends:接口可以多继承。

      4. 常量:接口中的属性只能是常量,总是:public static final 修饰。不写也是。

      5. 方法:接口中的方法只能是:public abstract。 省略的话,也是public abstract。

要点

      1. 子类通过implements来实现接口中的规范。

      2. 接口不能创建实例,但是可用于声明引用变量类型。

      3. 一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。

      4. JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。

      5. JDK1.8后,接口中包含普通的静态方法。

【示例5-17】接口的使用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

public class TestInterface {

    public static void main(String[] args) {

        Volant volant = new Angel();

        volant.fly();

        System.out.println(Volant.FLY_HIGHT);

         

        Honest honest = new GoodMan();

        honest.helpOther();

    }

}

/**飞行接口*/

interface Volant { 

    int FLY_HIGHT = 100;  // 总是:public static final类型的;

    void fly();   //总是:public abstract void fly();

}

/**善良接口*/

interface Honest { 

    void helpOther();

}

/**Angle类实现飞行接口和善良接口*/

class Angel implements Volant, Honest{

    public void fly() {

        System.out.println("我是天使,飞起来啦!");

    }

    public void helpOther() {

        System.out.println("扶老奶奶过马路!");

    }

}

class GoodMan implements Honest {

   public void helpOther() {

        System.out.println("扶老奶奶过马路!");

    }  

}

class BirdMan implements Volant {

    public void fly() {

        System.out.println("我是鸟人,正在飞!");

    }

}

      执行结果如果5-23所示:


最新回复(0)