二、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();
结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 3,499评论 1 24
  • 2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布“We have new ...
    yeshenlong520阅读 2,312评论 0 9
  • 01 雪梅正要打电话,菊萍姐就打过来了:走,看胡杨去! 今天去胡杨林,是她们姊妹早就商定的。女人们喜欢看胡杨,喜欢...
    甘肃__王兴邦阅读 2,562评论 13 31
  • 好好说话 让别人接受你的批评-春风化雨的训人之道@邱晨 作为前辈或领导,训人是家常便饭,但是如何训,才能让别人不反...
    简文堂阅读 853评论 0 0