二、Java初级--11、数组、强制类型转换、传递值/地址、接口

1、数组(array)

  • 可以存放多个同一种类型的变量
  • 数组的下标或索引,从0开始


    结构
package javastudy;

public class Testit {

    public static void main(String[] args) {
        Animal a[]=new Animal[4];
        a[0]=new Animal();
        a[1]=new Dog();
        a[2]=new Cat();
        a[3]=new Person();
        for(int i=0;i<=3;i++) {
            a[i].eat();
        }
    }
}

2、 强制类型转换

在person类中定义一个方法study

package javastudy;

public class Person extends Animal {

//  @Override
//  public void eat() {
//      // TODO Auto-generated method stub
//      super.eat();
//  }
    public void study() {
        System.out.println("我爱学习!");
    }
}

此时在testis类中,为Person类生成一个对象a,但是只能引用animal中的eat(),而不能引用Person定义的study,此时需要使用强制类型转换


类型没有转换前
        Animal a=new Person();
        Person p=(Person)a; //强制类型转换
        p.study();
转换后,都能够引用
结果

3、 传值和传址

  • 简单类型的变量传值:byte、short、int、long、float/double、boolean、char
  • 引用类型的变量传址 String、对象
    Person类
    int age;

Testit类

        int a=100;
        int b=a;
        a=1000;
        System.out.println("a的值:" +a+","+"b的值:"+b); //传递数值
//      
        Person x=new Person();
        x.age=20;
        Person y=x;
        x.age=30; //传递地址
        
        System.out.println("x的值:"+x.age+";"+"y的值:"+y.age); 
结果

4、接口

  • 类似于继承中的父类,但是继承(extends)中要求一个子类不能继承多个父类
  • 接口中只能有抽象方法abstract method
    设置自动补全类名,在window---preferences--java--editor--content assist中将a-z都添加进去。


    设置自动补全

首先创建一个接口interface,在“新建”---“interface”中新建student

结构

接口student

package javastudy;

public interface Student {
        public void studyed();//接口中只能有抽象方法,不能够实现
}

接口teacher

package javastudy;

public interface Teacher {
    public void teached();
}

Assist类实现接口teacher、student


定义接口实现
package javastudy;

public class Assist implements Teacher, Student { //implements实现接口中定义的方法 

    @Override
    public void studyed() {
        // TODO Auto-generated method stub
        System.out.println("我爱学习!");
    }

    @Override
    public void teached() {
        // TODO Auto-generated method stub
        System.out.println("我爱讲课!");
    }
}

Testit类

        Assist a=new Assist();
        a.studyed();
        a.teached();
        Teacher t=new Assist();  //也可以用父类的引用指向派生类的对象,Teacher当做Assist的父类
        t.teached();
        Assist s=(Assist)t;
        s.studyed();
结果

你可能感兴趣的:(二、Java初级--11、数组、强制类型转换、传递值/地址、接口)