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

     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所示:

图5-23 示例5-17运行效果图.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值