6.Java 中的容器(重點)java
a.變量:變量是一個容器,它存儲的單個值 //int i=3;編程
1.局部變量:定義在方法中,沒有默認值數組
2.成員變量:定義在類中方法外,這個事物的屬性(特徵)定義爲成員變量,有默認值安全
class Hero{app
String heroName;//類中全部的方法都能使用編程語言
public void method(int m){//方法形參上的變量也是局部變量,僅能在方法中ui
int i=3;//僅能在方法中使用編碼
}orm
public void method2(){對象
int i=3;
}
public void method3(){
int i=3;
}
}
b.對象:對象也是一個容器,它存儲的所屬類的各個屬性值//Phone p=new Phone();//品牌,價格
A:什麼是面向過程
面向過程,其實就是面向着具體的每個步驟和過程,把每個步驟和過程完成,而後由這些功能方法相互調用,完成需求。
B:什麼是面向對象
面向對象思想就是不斷的建立對象,使用對象,指揮對象作事情。(若是有對象,直接用對象,對咱們直接提供服務)
A:面向過程:
強調的是過程,全部事情都須要本身完成
B:面向對象:
是一種更符合咱們思想習慣的思想(懶人思想,我把事情本身不作,交給別人去作)
能夠將複雜的事情簡單化(對使用者來講簡單了,對象裏面仍是很複雜的)
將咱們從執行者變成了指揮者角色發生了轉換
c.數組:數組存儲同一種數據類型的容器// int[] arr={1,2,4,5,6};
1.每一個元素都對應一個角標:String[] jiJie={"冬季","春季","夏季","秋季"}
2.獲取數組的長度:length 屬性
3.兩種初始化方式:
靜態初始化:
int[] arr={1,2,3,4};
int[][] arr2={{1,2,3},{4,5,6}}
動態初始化:
int[] arr=new int[4];
int[][] arr2=new int[3][4];//有三個一維數組,每一個一維數組的長度都是4
h.當方法參數是引用類型,那麼調用方法時須要得是該引用類型的對象.
當方法的返回值是引用類型,那麼調用方法,咱們要返回的是一個對象
A:封裝概述
是面向對象三大特徵之一
是面向對象編程語言對客觀世界的模擬,客觀世界裏成員變量都是隱藏在對象內部的,外界沒法直接操做和修改。就像剛纔說的年齡。
B:封裝原則:
將不須要對外提供的內容都隱藏起來。
把屬性隱藏,提供公共方法對其訪問。
成員變量private,提供對應的getXxx()/setXxx()方法
C:好處:
經過方法來控制成員變量的操做,提升了代碼的安全性
把代碼用方法進行封裝,提升了代碼的複用性
f.String:字符串.由多個字符組成的一串數據(字符串其本質是一個字符數組)
構造方法:
String(String orininal) : 把字符串數據封裝成字符串對象
String(char[] value) : 把字符數組的數據封裝成字符串對象
String(char[] value,int index,int count) :把字符數組中的一部分封裝成字符串對象.(從0索引開始取chs.length(5)個char類型的數據封裝成String 對象)
注意: 經過構造方法建立字符串對象是在堆內存.
直接賦值方法建立對象是在方法區的常量池.
== : 1.基本數據類型:比較得是基本數據類型的值是否相同
2.引用數據類型:比較得是引用數據類型的地址值是否相同
Object :是類層次結構中的跟類,全部的類都直接或者間接的繼承該類.
注意:若是一個方法形式參數是Object,那麼這裏咱們就能夠傳遞它的任意的子類對象.
String類的判斷功能:
boolean equals(Object obj) :比較字符串的內容是否相同.
boolean equalsIgnore(String str):比較字符串的內容是否相同,忽略大小寫
boolean starWith(String str) : 判斷字符串對象是否以指定的str開頭
boolean endsWith(String str) : 判斷字符串對象是否以指定的str結尾
boolean contains(String str) : 判斷是否包含傳入字符串,包含爲true
String類的獲取功能:
int length() : 獲取字符串的長度,其實也就是字符個數.
char charAt(int index) : 獲取指定索引處的字符
int indexOf(String str) : 獲取str在字符串對象中第一次出現的索引.(若是沒有找到就返回-1);
String substring(int start) : 從start開始截取字符串
String substring(int start,int end) : 從start開始,到end結束截取字符串,包括start,不包括end.
String類的轉換功能:
char[] toCharArray() : 字符串轉換爲字符數組
String toLowerCase() : 把字符串轉換爲小寫字符串
String toUpperCase() : 把字符串轉換爲大寫字符串
String類的其餘功能:
String trim() : 去除字符串兩端空格.
String[] split(String str) : 按照指定符號分割字符串
boolean contains(String str) : 判斷是否包含傳入字符串,包含返回true,不包含返回false;
String replace(String old,String new) : 返回一個新的字符串,它是經過用String new替換此字符串中出現的全部String old獲得的.
擴展:
static String format(Locale l,
String format,
Object... args))
意思是: 有兩部分組成,一個部分是一種格式由字符串形式表示出來,這個字符串裏面有佔位符和其餘字符組成,佔位符表示一個變量,(佔位符的格式是百分號%,百分號後面再接一個字母,來表示這個變量是什麼數據類型)
第二個部分是變量解釋,解釋變量的順序,就是佔位符從前到後的順序,一個解釋對應一個佔位符.
byte[] getBytes(String charsetName) : 使用指定的字符集將此String 編碼爲byte序列,並將結果存儲到一個新的byte數組中.
d.集合(ArrayList):集合中存儲的是尖括號(泛型)中的類型的數據// ArrayList<String> al=new ArrayList<String>();
a.定義:
ArrayList<只能寫引用數據類型,寫什麼類型表明集合中存儲什麼類型> al=new ArrayList<同前面一致>();//化學實驗室瓶子上的標籤
b.方法回顧:(Create Read Update Delete)
1.增:
add(尖括號中的元素類型 ele)
add(int index,尖括號中的元素類型 ele)
2.刪:
remove(尖括號中的元素類型 ele)//按照元素的內容刪除該元素
remove(int index)//按照指定的索引刪除
3.改:
set(int index,尖括號中的元素類型 ele)
4.查:
尖括號中的元素類型 get(int index)
int size()
boolean contains(String str) : 此集合中是否包含指定的子字符串,若是是返回true,不然false;
注意:
直接打印集合的引用:
若是是java寫好的數據類型的話,會直接打印元素
若是是自定義類,將打印地址值
String用+= 拼接字符串耗費內存的緣由:
每次拼接都會產生新的字符串對象,而利用StringBuilder來橋接字符串自始至終用的都是同一個StringBuilder容器.
e.字符緩衝序列(StringBuilder):它裏面能夠添加任意類型數據,可是最終全部的數據都是以字符存儲的//StringBuilder sb=new StringBuilder()
1.應用場景: 只要拼接字符串優先考慮StringBuilder,不要再用+=
把數組拼接成[1, 2, 3]
2.構造方法:
a. StringBuilder sb=new StringBuilder();//建立一個空的容器
b. StringBuilder sb2=new StringBuidler("abc");//容器一有,裏面就裝有abc
3.成員方法:
a.StringBuilder append(任意數據類型):不斷向StringBuilder容器末尾追加
返回的是已經裝了元素的StringBuilder容器
b.StringBuilder reverse():返回的是內容已經反轉的StringBuilder容器
c.String toString()//將StringBuilder中的數據返回一個字符串
d.delete(int start,int end)//將[start,end-1]之間的字符所有刪掉
length(): 返回長度
int indexOf(String str) : 獲取str在字符串對象中第一次出現的索引
包裝類:
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
調用方法用快捷鍵輸出返回類型: ctrl + 2 + L
擴展
add方法的返回值是boolean 類型,返回得是存儲狀態.