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

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

作者: cybeyond | 来源:发表于2018-03-26 11:21 被阅读0次

    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、数组、强制类型转换、传递值/地址、接口

          本文链接:https://www.haomeiwen.com/subject/zfmzqftx.html