1.引用資料型別作為引數和返回值的問題
類, 介面, 抽象類其實都是引用資料型別, 當他們作為引數和返回值的時候一定傳入或返回位址值, 在直白一點,就是new乙個物件返回
但是介面和抽象類不能直接new, 需要建立其子類或者實現類物件才可以.
2.內部類:
定義乙個類中的類, 我們稱之為內部類
成員內部類:
將乙個類定義在另外乙個類的成員位置.
訪問特點:
成員內部類可以使用外部類的東西,甚至私有東西
//例如:
class
outer
}}
技巧:
成員內部類也是乙個類, 想要使用它裡面的東西,還得想要進行構造初始化
區域性內部類:
將類定義在另外乙個類中的方法中
訪問特點:
區域性內部類可以使用外部類的東西,甚至私有東西
只有呼叫了該方法,該區域性內部類才有用
匿名內部類:(重點!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
作用: 快速建立乙個類或者乙個介面的子類物件!!!!!!不用再額外定義乙個類了
格式:
new 類|介面(
)
例如:
inte***ce
a
傳統方式:
//1.定義乙個類實現a介面
public
class
aimpl
implements
a}
2.建立實現類物件來使用
aimpl a =
newaimpl()
; a.
method()
;
//匿名內部類方式:
a a =
newa()
};a.
method()
;
優點: 內部類可以使用外部類的所有東西,甚至私有的東西!!!!!!
3.math
1.
static
double
ceil
(double number);--
-->向上取整
2.static
double
floor
(double number);--
-->向下取整
3.static
double
pow(
double a,
double b);--
-->去a的b次方
4.static
double
abs(
double number);--
-->求乙個數的絕對值
4.system
static long currenttimemillis() ; ---->可以獲取從2023年1月1日 8點0分0秒 到現在經過多少毫秒
static void exit(int status) ; 狀態碼為0代表正常終止, 非0代表異常終止
5.object
object是萬類的祖宗, 任何類都直接或者間接繼承object, 任何類都可以使用object提供的方法
string tostring();
object中的實現:
列印了乙個類的全類名(包名+類名)+"@"+ 位址值,這個東西我們目前看的不太懂!!!!!, 我們可以對object中的這個不滿意方法進行重寫
重寫:alt + insert ---->tostring;
boolean equals(object obj);
object中的實現:
this == obj; ---->預設比較還是位址值
重寫:alt + insert ---->equals&hashcode這個選項
目的:希望物件之間不要比位址值,而是比內容.
6.arrays
tostring(int arr) ; ---->將陣列變成字串列印到控制台上;
sort(int arr) ; ---->對陣列進行排序
匿名內部類 常用API
1類名作為形參和返回值 class cat class catoperator public cat getcat public class catdemo 2抽象類作為形參和返回值 abstract class animal class cat extends animal class anima...
內部類和匿名內部類
內部類 取個類名inner 有三種 成員內部類 相當於類中的成員 1.可以訪問外部類的成員變數.2.類中的成員函式訪問內部類 建立內部類的物件進行訪問.如 inner in new inner 3.外部其他類 不是內部類的直接外部類 訪問內部類的成員建立物件.格式 外部類名 內部類名 變數名 new...
內部類和匿名內部類
把類定義在其他類的內部,這個類就被稱為內部類。舉例 在類 a 中定義了乙個類 b,類 b 就是內部類。內部類的訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類要訪問內部類的成員,必須建立物件。按照內部類在類中定義的位置不同,可以分為如下兩種格式 成員位置 成員內部類 一般內部類就是不讓外界...