面向对象语言特性 (一)

(一)  static

作用于 变量,方法,代码块

静态变量:被类的所有对象共享   在类加载时被加载   优先于对象

Student.country = "中国";

静态方法:类名.方法名();
    静态方法中只能调用静态成员

代码块:
       局部:限制局部变量生命周期
       构造:初始化对象的操作
       静态:类的初始化操作,在首次类加载时调用

1.加静态不影响权限修饰
    2.this,super与static不能同时使用

(二)静态导入

import sattic xxxxx.xxx(导入静态成员)

(三)final

修饰类,变量,方法
     内部类

final修饰变量---常量   public static final int a  =10;
     final修饰全局变量,只能在定义的同时赋值,或者在构造器中赋值
          修饰局部变量,可以先定义在赋值

class  X{
    public final int A;

public X(){
        A = 20;
    }

public void fun(){
        final int b;
        b = 20;
    }

}

final修饰的类不能被继承
          且 成员方法默认final修饰

final修饰的方法不能被重写

(四)权限修饰符

(五)abstract

修饰类和成员方法
    父类只知道子类有某种行为但不清楚子类对于该行为的实现细节-->抽象方法
         public abstract void eat();
    含抽象方法的类需定义为抽象类   abstract class Animal{}

除非子类为抽象类,否则当父类有抽象方法时,子类强制要求重写

抽象类不能被实例化(不能被new),但有构造器,提供给子类对象实例化

抽象方法不能用private,final,static修饰

(六)接口 interface

供别人调用的方法或者函数    解决多重继承问题
     implements   可以多实现
    可包含变量和方法,但方法必须为抽象方法(默认public abstract),但变量默认public static final,可以与外界直接访问,为静态常量,值不可修改
    接口中没有构造方法,不能被实例化
    接口与接口之间为继承关系,且接口之间可以实现多继承

(七)内部类

将一个类定义在另一个类或者一个方法里面

成员内部类,局部内部类,匿名内部类,静态内部类

1.成员内部类

    ---相当于类的成员
        可以无条件访问外部类成员属性和成员方法(包括private,静态成员)

外部类调用内部类方法:Inner innner =new Inner();
                  inner.fun();
    主方法中调用内部类方法:Outter outter = new Outter();
                Outter.Inner inner = outter.new Inner();
或:Outter.Inner i = new Outter().new Inner();
    成员内部类只能定义实例成员,不能定义静态成员

2.局部内部类

  --相当于一个方法中的局部变量
        不能有public private protected 及static修饰
           可以访问外部类的普通成员变量和静态成员变量以及普通成员方法和静态方法,也可以访问该内部类所在方法局部变量(但必须用final修饰(默认加))
        不能包含静态成员

3.匿名内部类

继承了类或实现了接口的子类匿名对象
        可以写成成员变量的形式,也可以写在方法中,一般写在方法中较多
        可以访问外部类的普通成员变量和静态成员变量以及普通成员方法和静态方法,也可以访问该内部类所在方法局部变量(但必须用final修饰)
        用于接口回调

4.静态内部类

定义在类内部,static修饰,不依赖外部类,只能使用外部类中静态...

(八)==与equals

==:作用于基本数据类型,比较其储存的值是否相等
       作用于引用类型变量 ,比较所指向的对象的地址
    equals():不能作用于基本数据类型的变量,只能是一个对象来调用,参数也要传一个对象,
    如果未对equals方法重写,则比较的是引用类型变量的变量所指向的对象的地址值
    诸如String Date等类对equal方法进行了重写的话,比较的是所指向内容的对象

(九)toString

Object类中方法,把引用里显示在堆区对象的地址值显示出来,常重写方法

(十)getClass

final修饰,不能被子类重写,,可以返回某一引用在运行时指向对象类型 、
        获取某一对象的字节码文件

(十一)String类

final修饰,不能被继承
        通过char数组保存字符串
        字符串 常量,他们的值在创建后不能更改

字符串缓冲区支持可变的字符串
        StringBuffer   线程安全的可变字符序列   synchronized    
        主要操作:append  insert  
        StringBuilder  可变字符序列

(十二)装箱与拆箱

基本数据类型---包装类
        int--Integer   Integer integer = 10;   自动装箱(-128-127)
               int a = integer;   自动拆箱
        float
        boolean
        double
        char--Character

Integer integer  =  10;      自动装箱     (-128――127)

int a = integer ;     自动拆箱

最新文章

  1. OpenStack网络指导手册 -基本网络概念
  2. Devexpress treelist 树形控件 实现带三种状态的CheckBox
  3. iOS 协同开发出fatal error: file ‘XX-Prefix.pch’ has been modified since the precompiled header was built
  4. openpgp和gnupg
  5. Jquery Validation 插件验证手机号
  6. Netsharp快速入门(之4) 基础档案(之C 实体建模 计量单位、商品、往来单位)
  7. [topcoder]NinePuzzle
  8. linux_vim_快捷键
  9. centos 7安装es 及异常处理
  10. PyCharm教程
  11. [国嵌笔记][027][ARM协处理器访问指令]
  12. 格式化输出io:format的奇技淫巧
  13. 为Arch Linux更换Archlinuxcn源(清华源)
  14. jvm的解释执行与编译执行
  15. Class实例在堆中还是方法区中?
  16. python保存文件到数据库
  17. Vue2.0 v-for 中 :key 到底有什么用?
  18. 180425、cookie工具类
  19. Hbase和Hive的异同
  20. Mysql安装过程中出现apply security settings错误的解决方法

热门文章

  1. java json转义引号
  2. js预览上传图片
  3. VS2008中C++打开Excel(MFC)
  4. jquery为元素绑定事件
  5. 小结ajax中的同源和跨域 jsonp和cors
  6. django-5-自定义模板过滤器及标签
  7. VS2015使用C++编写DLL,并在C#环境中调用【转】
  8. JavaScript中的XMLDOM对象
  9. idea debug打得断点第一次可以进入,第二次不能进入
  10. Fiddler 无法监测WCF通信疑问