面向对象下

Posted wheleetcode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象下相关的知识,希望对你有一定的参考价值。

1 final 关键字修饰变量,方法,类,系统不允许为final变量重新赋值,子类不允许覆盖父类final方法,final类不能派生子类。通过final实现不可变类,不可变类让系统更安全。

2 抽象类主要作为多个类的模版,接口定义了多个类应该遵守的规范,

3 enum用于创建枚举类,枚举类是一种不能自由创建对象的类,枚举类的对象在定义类时已经固定下来。适应与季节,这样的类,创建的实例有限且确定

4 为了解决8种基本数据类型变量不能当成Object类型变量使用,Java提供了包装类的概念,为基本类型分别提供了相应的引用类型,称为包装类。

技术分享
    public static void main(String[] args) {
        Boolean b = new Boolean("dfd");
        System.out.println(b.toString());
    }
false
View Code

5 Integer 特殊 -128 - 127 装箱有缓存

技术分享
        System.out.println(new Integer(3) == new Integer(3)); // false 不是同一个引用
        Integer i1 = 9;
        Integer i2 = 9;
        System.out.println(i1 == i2); // true 缓存
        Integer i3 = 1111;
        Integer i4 = 1111;
        System.out.println(i3 == i4);  // false;
View Code)

6 == 如果两个变量是基本类型变量,且都是数值类型(不要求类型相同)只要值相同就true,引用类型变量,必须指向同一个对象,== 不可用于比较类型上没有父子关系的两个对象。否则编译出错

技术分享
        int i = 65;
        char c = A;
        double d = 65.0;
        System.out.println(i == c);
        System.out.println(i == d);
        
        String s1 = new String("hello");
        String s2 = new String("hello");
        System.out.println(s1 == s2);
        System.out.println(s1.equals(s2));
true
true
false
true
View Code

7 常量池用于管理在编译

放假

以上是关于面向对象下的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器