栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一起学java---第四周

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一起学java---第四周

一、

接口:

        是一种引用数据类型

        由interface定义

        只能包含常量和抽象方法

        不能被实例化

public class InterfaceDemo {
    public static void main(String[] args) {
    //Inter5 o1 = new Inter5(); //编译错误,接口不能被实例化
    Inter5 o2 = new Doo(); 
    Inter4 o3 = new Doo();
    }
}
interface Inter4{
    void show();
}
interface Inter5 extends Inter4{//接口可以继承接口
    void test();
}
class Doo implements Inter5{
    public void test(){}
    public void show(){}
}

        接口需要被实现/继承,实现类/派生类必须重写接口中的所有抽象方法

        一个类可以实现多个接口,用逗号分隔,若又继承又实现时,应先继承后实现

        接口可以继承接口

interface Inter{
    //接口中成员的访问权限,默认就是public的,也只能是public的
    public static final int NUM = 5;
    public abstract void show();
    int COUNT = 5;
    void test();
    //int number; //编译错误,常量必须声明同时初始化
    //void say(){ } //编译错误,抽象方法不能有方法体
}

二、多态:多种形态

        1.意义:

                同一个对象被造型为不同的类型时,有不同的功能,所有对象都是多态的

                同一类型的引用指向不同的对象时,有不同的实现,所有抽象方法都是多态的

        2.向上造型/自动类型转换:

                超类型的引用指向派生类的对象

                能点出来什么,看引用的类型

                能向上造型成为的类型有:超类和所实现的接口

        3.强制转换的条件:

                引用所指向的对象,就是该类型

                引用所指向的对象,实现了该接口或继承了该类
public class Test {
    public static void main(String[] args) {

        Aoo o = new Boo();
        Boo o1 = (Boo)o;
        Inter o2 = (Inter)o;
        //Coo o3 = (Coo)o; //运行时会发生ClassCastException类型转换异常

        if(o instanceof Coo){ //判断o是否是Coo类型(与强转成功条件完全匹配)
            Coo o4 = (Coo)o; 
        }else{
            System.out.println("o不是Coo类型");
        }
    }
}

interface Inter{ }
class Aoo{ }
class Boo extends Aoo implements Inter{ }
class Coo extends Aoo{ }

4、接口的好处:

        复用性好、扩展性好、维护性好

三、栈,堆,方法区

        堆:存储的是new出来的对象(包括实例变量、数组的元素)

        栈:存储正在调用的方法中的局部变量(包括方法的参数)

        调用方法时会在栈中为该方法分配一块对应的栈帧,栈帧中存储局部变量(包括方法的参

        数),方法调用结束时,栈帧被自动清除,局部变量一并被清除

方法区:

        存储.class 字节码文件(包括静态变量、所有方法)         方法只有一份,通过this来区分具体的调用对象 四、面向对象三大特征          封装:                 类:封装的是对象的属性和行为                 方法:封装的是具体的业务逻辑功能实现                 访问控制修饰符:封装的是具体的访问权限
class Aoo {//所有派生类所共有的属性和行为

    String name;//封装的是对象的属性和行为
    void show(){//方法:封装的是具体的业务逻辑功能实现
    }
}

class Boo extends Aoo{

    int a;//派生类所特有的属性和行为
    public void Name(){
        System.out.println(name);//代码复用
    }

    
}

        继承:                 作用:代码复用                 超类:所有派生类所共有的属性和行为                 接口:部分派生类所共有的属性和行为                 派生类:派生类所特有的属性和行为                 单一继承、多接口实现,具有传递性         多态:                                  所有对象都是多态的----------------通过向上造型来体现的                 所有抽象方法都是多态的----------通过方法的重写来体现的                 向上造型、强制类型转换、instanceof判断 五、String:                 java.lang.String使用final修饰,不能被继承                 String的底层封装的是一个字符数组                 String在内存中采用Unicode编码格式,每个字符占用两个字节的空间                 字符串一旦创建,对象内容永远无法改变,但字符串引用可以重新赋值(指向新的对象)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号