Object:代表所有的根類,任何類都繼承自Object類
public int hashCode()返回該對象的哈希碼值(和集合hashtable :哈希表)
每一個對象的哈希碼值都不一樣, 哈希碼值不是實際意義上的地址值,可以理解爲地址值

public final Class<?> getClass()返回此 Object 的運行時類。 (Java原理:運行的xx.class文件:字節碼文件)

            Class:表示的字節碼文件對象--->通過字節碼文件對象使用反射的方式去加載當前字節碼文件中的成員變量/成員方法/構造方法
        返回的 Class 對象是由所表示類的 static synchronized 方法鎖定的對象 

在Class類:
            public String getName() :以 String 的形式返回此 Class 對象所表示的實體(接口,類,數組...)名稱

public String toString()返回該對象的字符串表示。通常,toString 方法會返回一個“以文本方式表示”此對象的字符串。
結果應是一個簡明但易於讀懂的信息表達式。建議所有子類都重寫此方法。

類中有成員變量:
    toString()的目的就是爲了顯示當前類的成員變量;

Integer類中:
public static String toHexString(int i)返回一個整數參數的字符串表示形式。
內部類:
在一個類中,在定義另一個類
舉例:
在類B中定義類A,類A就是類B的內部類

    特點:
        內部類他都可以去訪問外部類的成員,包括私有
        外部類的成員訪問內部類的成員?  需要創建內部類對象,由內部類對象訪問內部的成員

內部類分類:
1)成員內部類
位置:在外部類的成員位置
2)局部內部類:
位置:在方法中定義的類
需求:外部類如何訪問成員內部類的成員方法?
成員內部類(非靜態的)的訪問特點

通過類Oueter3訪問類Inner3裏面的show方法
外部類名.內部類名 對象名 = 外部類對象.內部類對象 ;
定義外部類
成員內部類的修飾符:
被private修飾,爲了保證數據的安全性.
static修飾: 稱爲靜態成員內部類 ,只是爲了方便調用

舉例:
人(人有身體,身體內心臟)
外部類
class Body{
成員內部類
private class Heart{
public void operator(){
System.out.println("心臟搭橋手術...) ;
}
}

        //外部類的成員方法
        public void method(){
            if("假如你是外科醫生.."){
                Heart heart = new Heart() ;
                heart.operator() ;
            }
        }
    }

外部類訪問成員內部類的成員方法?
外部類名.內部類名 對象名 = 外部類對象.內部類對象;
Body.Heart bh = new Body().new Heart() ;
bh.operator() ; private修飾類成員內部類,不能直接訪問? 怎麼玩?
解決方案:
Body b = new Body() ;
b.method() ;
局部內部類:
局部內部類裏面的成員方法直接可以訪問外部類的成員,包括私有
匿名內部類
:它是內部類的簡化版

前提:存在一個類或者接口(接口用多)
類:可以具體類/抽象類
格式:
new 類名/接口名(){
重寫/實現一些方法()..
} ;
equals(Object obj):某個對象是否與此對象“相等”。
基本數據類型:比較的他們的具體值是否相同
引用數據類型:比較的是地址值是否相等
==:(引用類型)比較的是地址值是否相等
Object中的clone()方法
protected(保證數據的安全性) Object clone()throws CloneNotSupportedException

    創建並返回此對象的一個副本

注意:
Object 類的 clone 方法執行特定的複製操作。
首先,如果此對象的類不能實現接口 Cloneable,則會拋出 CloneNotSupportedException。
Scanner類:
表示簡單文本掃描器

1)創建Scanner類對象

Scanner的構造方法:
public Scanner(InputStream source)
InputStream is = System.in; //類似於抽象類多態
導包方式:import java.util.Scanner;
Scanner sc = new Scanenr(System.in);

    System.in   :標準"輸入流"            
            --->public static final InputStream in靜態字段:返回值InputStream:字節輸入流(錄入數據)
    System.out  :       
                public static final PrintStsram out:返回值PrintStream:字節打印流:調用println():實現行的分隔符

錄入一個int類型的數據或者是錄入String數據

Scanner類中常用的兩個方法:
nextXXX() :錄入下一個XXX數據類型的數據
public boolean hasNextXXX():判斷錄入的數據下一個是否是XXX這類型的數據
錄入int類型的和String類型的先後順序的問題
發現一個問題:
先錄入int類型數據,在錄入String類型數據,String類型的數據直接略過了
原因:錄入int類型數據之後,下個標記String:回車符號,它本身字符串錄入了,直接略過了!
解決方案:
在錄入String數據之前,在重新創建一個Scanner對象
String:特殊的引用類型
字符串是常量;它們的值在創建之後不能更改。(常量是在方法區中:字符串常量池 :前提:將字符串常量直接賦值的形式 )

                    舉例:
                        String str = "abc" ;        ==>String str = new String("abc")
構造方法:
    String() :空參構造
    String(byte[] bytes):將字節數組-->String 數據 
    String(byte[] bytes, int offset, int length):將字節數組的一部分轉換字符串
    String(char[] value) :將字符數組轉換成字符串
    String(char[] value, int offset, int length):將字符數組的一部分轉換字符串 
    public String(String original)  :創建一個字符串對象:傳遞字符串常量 
常用的成員方法:
        public int length():獲取字符串長度
    筆試題 
        數組中有沒有length(),字符串中有沒有length(),集合中有沒有length()?
        數組length屬性,字符串中有,集合沒有-->size()方法

字符串是常量一旦被賦值,就不能被改變.
String類常見的功能
public boolean equals(Object anObject) :比較字符串的內容是否相同
public boolean equalsIgnoreCase(String anotherString):比較內容是否相同,忽略大小寫
public boolean contains(String s):判斷大字符串中是否包含一個子字符串
public boolean startsWith(String prefix):判斷字符串是以...開頭
public boolean endsWith(String suffix):判斷字符串是以...結尾
public boolean isEmpty() :判斷字符串是否爲
兩個區別:
前者:表示當前s對象是一個空內容
後者:表示空對象
String s ="" ;
String s = null

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章