面向对象语言特性 (一)

(一)  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 ;     自动拆箱

Core Java(六)的更多相关文章

  1. applet示例 WelcomeApplet.java <Core Java>

    import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.Grap ...

  2. Core Java Volume I — 1.2. The Java "White Paper" Buzzwords

    1.2. The Java "White Paper" BuzzwordsThe authors of Java have written an influential White ...

  3. Core Java Volume I — 4.7. Packages

    4.7. PackagesJava allows you to group classes in a collection called a package. Packages are conveni ...

  4. Core Java Interview Question Answer

    This is a new series of sharing core Java interview question and answer on Finance domain and mostly ...

  5. Core Java 学习笔记——1.术语/环境配置/Eclipse汉化字体快捷键/API文档

    今天起开始学习Java,学习用书为Core Java.之前有过C的经验.准备把自己学习这一本书时的各种想法,不易理解的,重要的都记录下来.希望以后回顾起来能温故知新吧.也希望自己能够坚持把自己学习这本 ...

  6. Core Java读书笔记之String

    Java里面的String Conceptually, Java Strings are sequences of Unicode characters. Java里面的String都是Unicode ...

  7. Top 25 Most Frequently Asked Interview Core Java Interview Questions And Answers

    We are sharing 25 java interview questions , these questions are frequently asked by the recruiters. ...

  8. Difference Between Arraylist And Vector : Core Java Interview Collection Question

    Difference between Vector and Arraylist is the most common  Core Java Interview question you will co ...

  9. Core Java (十一) Java 继承,类,超类和子类

    Core Java (十一) Java 继承,类,超类和子类 标签: javaJavaJAVA 2013-01-22 17:08 1274人阅读 评论(0) 收藏 举报  分类: java(58) 读 ...

随机推荐

  1. 开源作品-PHP写的JS和CSS文件压缩利器(单文件绿色版)-SuMinify_PHP_1_5

    前言: 网站项目需要引用外部文件以减小加载流量,而且第一次加载外部资源文件后,其他同域名的页面如果引用相同的地址,可以利用浏览器缓存直接读取本地缓存资源文件,而不需要每个页面都下载相同的外部资源文件. ...

  2. Redis 四:存储类型之散列类型

    1.散列类型表达方式简介: =========================================== 键 字段 值 =================================== ...

  3. Struts2学习笔记 - Part.01

    1.关于Struts2中的struts.xml文件中action设置 <!-- 它是一个通用action,此处的*表明它可以处理任意的请求--> <action name=" ...

  4. 如何用npm安装vue

    下载安装node.js,安装完毕做好配置后开始运行. 如果npm版本太低,需要升级一下npm # 查看版本 $ npm -v #升级 npm cnpm install npm -g 安装vue-cli ...

  5. anuglar.js ui-router传递参数

    anuglar.js ui-router 传递参数的方法有: 一: ui-sref 传递参数,传递一个参数的时候 首先路有这样写: .state('edit', { //线路编辑页面 url: '/e ...

  6. PHP如何判断一个数组是一维的还是二维的

    1.首先我们有一个PHP内置函数 count(); count(array,mode); array是数组,mode默认为0,1是递归的计数 <?php if(count($arr) == co ...

  7. ubuntu重置root密码(转载自https://zhinan.sogou.com/guide/detail/?id=316512881651)

    ubuntu忘记root密码怎么办?如果普通用户忘记了怎么办 ### 第一种方法:无论你是否申请了root帐号,或是普通账号密码忘记了都没有问题的! 1. 重启ubuntu,随即长按shift进入gr ...

  8. 【BZOJ3600】没有人的算术 - 替罪羊树+线段树

    题意: 题解: Orz vfleaking……真·神题 做法大概是先把题意中定义的“数”都赋一个实数权值,用平衡树来维护整个从大到小排序过的序列,再用线段树查询最值: 这样做为什么是对的?考虑插入一个 ...

  9. N1-1 - 树 - Minimum Depth of Binary Tree

    题目描述: Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the ...

  10. GNU/Linux分支图