面向对象语言特性 (一)

(一)  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. 【技术累积】【点】【java】【2】聊一聊似曾相识的switch语句

    闲聊 有些东西并不能像爱因斯坦老先生说的那样,书上查的到就不用去记住... 开始 java使用了C的所有流程控制语句: java中同样有switch语句: 大多数情况下,switch都可以用if替换: ...

  2. 01--vim常用快捷键

    Linux中vim编辑器的功能非常强大,许多常用快捷键用起来非常方便,这里将我学vim入门时学的一些常用的快捷键分享给大家一下,希望可以帮助你们.   这个是我将鸟哥书上的进行了一下整理的,希望不要涉 ...

  3. 怎么看时序图--nand flash的读操作详解 (转)

    这篇文章不是介绍 nand flash的物理结构和关于nand flash的一些基本知识的.你需要至少了解 你手上的 nand flash的物理结构和一些诸如读写命令 操作的大概印象,你至少也需要看过 ...

  4. 2018秋招blibli算法工程师

    我给出代码如下:和之前做数塔(dp的入门题目)的思路一致 dp[i][j]为走到坐标(i,j)的最小减速(只有向右走和向上走两种情况) #include<stdio.h> #include ...

  5. VS Code中编写html(5) 标签的布局设置

    1  <!--首先在div中添加四个span标签--> <div> <!--span*4+tab--> <!--span{span$}*4--> < ...

  6. python与php生成二维码对比

    php生成二维码 include 引入的库单独下载 <?php header("Content-type:text/html;charset=utf-8"); error_r ...

  7. Project Euler 24 Lexicographic permutations( 康拓逆展开 )

    题意: 排列指的是将一组物体进行有顺序的放置.例如,3124是数字1.2.3.4的一个排列.如果把所有排列按照数字大小或字母先后进行排序,我们称之为字典序排列.0.1.2的字典序排列是:012 021 ...

  8. Oracle与Mysql内嵌游标的使用示例

    Oracle 游标用For循环比较简单,Mysql也是最近才开始用,感觉稍微麻烦一点,下边直接上代码: ------------------------------------------------ ...

  9. 在 Windows10 系统中安装 Homestead 本地开发环境

    在 windows10 系统中安装 homestead 本地开发环境 在 windows10 环境下安装 homestead 开发环境,网上有很多相关教程其中大多都是 mac 环境,很多大神都是用户的 ...

  10. JavaScript基础简介

    JavaScript引入的方式 直接在<script>标签中写 <script> console.log('hello world!'); </script> 引入 ...