枚举、包装类、内部类

抽象方法

抽象方法的作用:声明一种高层的抽象概念上的策略和契约。具体的实例是由子类中对抽象方法的重写后的方法逻辑实现的。
所有在抽象类中定义的抽象方法都必须在子类中实现,除非子类也是抽象类。
抽象方法一定被定义在抽象类中,抽象类中不一定有抽象方法。

抽象类

抽象类是不能被实例化的,不能new
抽象类是制定策略,不是用于构造对象,而是定义类于类之间的层次关系。

枚举 (enum)

是一种特殊的class

  • 枚举实例的常用方法
    • name()获取枚举变量名
    • ordinal()得到枚举对象的索引
  • 枚举类方法
    • values()返回枚举类型中定义的所有对象实例组成的一个数组
    • valueOf(“”):按照枚举对象的名称获取指定对象
    • valueOf(fileName,“”):指定某个文件文件中的某个对象名称获取指定对象

包装类

包装类的构造方法

  • 所有包装类都有的构造方法:public 包装类型(与包装类类型一致的基本数据类型数据){}
  • 除了Character之外都有的构造方法:public 包装类型(String 与包装类类型一致的字符串){}
    • Boolean 构造时除了“true”这4个字母忽略大小写传进去结果为true,其他的均为false

包装类的常用方法

  • ***Value():将包装类转换为基本数据类型,比如integerNum.intValue()可以使Integer的包装类对象转换成int类型的值
  • toString():把基本类型转换为字符串,是一个静态方法,可以使用包装类名点出
    • 也可以使用基本数据类型+“”(空字符串)可以直接变成字符串
  • parse***():把相应的字符串转换为相应的基本数据类型(Character除外),也是静态方法
  • valueOf():所有包装类都有此静态方法,功能和构造方法相同

内部类

public class Body {
    public int age = 12;
    // 普通内部类
    class Heart {
        public String color;
        public void show() {
            System.out.println("我的心是"+color+",今年"+age+"岁了");
        }
    }
    // 静态内部类
    static class Wei {
        String color;
        public void show() {
            System.out.println("我的胃是"+color);
        }
    }
    // 方法内部类
    public void info() {
        class Gan {
            String school;
            public void show() {
                System.out.println("我的学校"+school);
            }
        }
        Gan gan = new Gan();
        gan.school = "北大";
        gan.show();
    }
}

// 测试
public class InteriorClassDemo {
    public static void main(String[] args) {
        // 普通内部类的调用
        Heart heart = new Body().new Heart();
        heart.color="红色";
        heart.show();
        // 静态内部类的调用
        Wei wei = new Body.Wei();
        wei.color = "红色";
        wei.show();
        // 方法内部类的调用
        Body body = new Body();
        body.info();
    }
}

匿名内部类

// 父接口
public interface FatherInterface {
    void show();
}
// 父类
public class FatherClass {
    public void name() {
        System.out.println("你好");
    }
}
// 测试
public class AnonymityInteriorClassDemo {
    public static void main(String[] args) {
        // 通过父类声明的匿名内部类对象
        new FatherClass() {
            public void show() {
                System.out.println("hello");
            }
        }.show();// 通过点调用方法
        // 通过父接口声明的匿名内部类对象
        new FatherInterface() {
            @Override
            public void show() {
                System.out.println("北京欢迎你");
            }
        }.show();// 通过点调用方法
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容