第1章 API
概述
API(Application Programming Interface),應用程序編程接口。Java API是一本程序員的字典泊交,是JDK中提供給我們使用的類的說明文檔乳讥。這些類將底層的代碼實現(xiàn)封裝了起來,我們不需要關心這些類是如何實現(xiàn)的廓俭,只需要學習這些類如何使用即可云石。所以我們可以通過查詢API的方式,來學習Java提供的類研乒,并得知如何使用它們汹忠。
API使用步驟
- 打開幫助文檔。
- 點擊顯示,找到索引宽菜,看到輸入框奖地。
- 你要找誰?在輸入框里輸入赋焕,然后回車参歹。
- 看包。java.lang下的類不需要導包隆判,其他需要犬庇。
- 看類的解釋說明
- 學習構造方法。
- 使用成員方法侨嘀。
第2章Scanner類
了解了API的使用方式臭挽,我們通過Scanner類,熟悉一下查詢API,并使用類的步驟咬腕。
2.1什么是Scanner類
一個可以解析基本類型和字符串的簡單文本掃描器欢峰。 例如,以下代碼使用戶能夠從 System.in 中讀取一個數(shù):
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
備注:System.in系統(tǒng)輸入指的是通過鍵盤錄入數(shù)據(jù)涨共。
2.2引用類型使用步驟
導包
使用import關鍵字導包纽帖,在類的所有代碼之前導包,引入要使用的類型举反,java.lang包下的所有類無需導入懊直。格 式:
import 包名.類名;
舉例:
java.util.Scanner火鼻;
創(chuàng)建對象
使用該類的構造方法室囊,創(chuàng)建一個該類的對象。 格式:
數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型(參數(shù)列表)魁索;
舉例:
Scanner sc = new Scanner(System.in)融撞;
調用方法
調用該類的成員方法,完成指定功能。 格式:
變量名.方法名();
舉例:
int i = sc.nextInt(); // 接收一個鍵盤錄入的整數(shù)
2.3 Scanner使用步驟
查看類
- java.util.Scanner:該類需要import導入后使用。
查看構造方法
- public Scanner(InputStream source):構造一個新的Scanner ,它生成的值是從指定的輸入流掃描的。
查看成員方法
-
public int nextint():將輸入信息的下一個標記掃描為一個int值逼庞。
使用Scanner類,完成接收鍵盤錄入數(shù)據(jù)的操作吗货,代碼如下:
//1. 導包
import java.util.Scanner;
public class Demo01_Scanner {
public static void main(String[] args) {
//2. 創(chuàng)建鍵盤錄入數(shù)據(jù)的對象
Scanner sc = new Scanner(System.in);
//3. 調用方法字逗,接收數(shù)據(jù)
System.out.println ("請錄入一個整數(shù):");
int i = sc.nextInt();
//4. 對數(shù)據(jù)進行輸出處理
System.out.println("i:"+i);
}
}
2.4 練習
求和
鍵盤錄入兩個數(shù)據(jù)并求和,代碼如下:
import java.util.Scanner;
public class Test01Scanner {
public static void main(String[] args) {
// 創(chuàng)建對象
Scanner sc = new Scanner(System.in);
// 接收數(shù)據(jù)
System.out.println("請輸入第一個數(shù)據(jù):");
int a = sc.nextInt();
System.out.println("請輸入第二個數(shù)據(jù):");
int b = sc.nextInt();
// 對數(shù)據(jù)進行求和
int sum = a + b;
System.out.println("sum:" + sum)醒陆;
}
}
取最值
鍵盤錄入三個數(shù)據(jù)并獲取最大值瀑构,代碼如下:
import java.util.Scanner;
public class Test02Scanner {
public static void main(String[] args) {
// 創(chuàng)建對象
Scanner sc = new Scanner(System.in);
// 接收數(shù)據(jù)
System.out.println("請輸入第一個數(shù)據(jù):");
int a = sc.nextInt()寺晌;
System.out.println("請輸入第二個數(shù)據(jù):");
int b = sc.nextInt()世吨;
System.out.println("請輸入第三個數(shù)據(jù):");
int c = sc.nextInt();
// 如何獲取三個數(shù)據(jù)的最大值
int temp = (a > b ? a : b);
int max = (temp > c ? temp : c);
System.out.println("max:" + max);
}
}
判斷奇偶
鍵盤錄入一個整數(shù)呻征,判斷該整數(shù)的奇偶耘婚,代碼如下:
//導包
import java.util.Scanner;
class JudgeOddOrEven{
public static void main(String[] args) {
//鍵盤錄入一個整數(shù),判斷該整數(shù)的奇偶
//創(chuàng)建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個整數(shù)");
//調用錄入整數(shù)的方法
int a = sc.nextInt();
//判斷 a 它的奇偶性
System.out.println(a % 2 == 0 ? "偶數(shù)" : "奇數(shù)");
}
}
2.5 匿名對象【了解】
概念
創(chuàng)建對象時陆赋,只有創(chuàng)建對象的語句沐祷,卻沒有把對象地址值賦值給某個變量。雖然是創(chuàng)建對象的簡化寫法攒岛,但是應用場景非常有限赖临。
-
匿名對象:沒有變量名的對象。
格式:
new類名(參數(shù)列表)灾锯;
舉例:
new Scanner(System.in);
應用場景
- 創(chuàng)建匿名對象直接調用方法兢榨,沒有變量名。
new Scanner(System.in).nextInt();
- 一旦調用兩次方法顺饮,就是創(chuàng)建了兩個對象吵聪,造成浪費,請看如下代碼兼雄。
new Scanner(System.in).nextInt();
new Scanner(System.in).nextInt();
小貼士:一個匿名對象暖璧,只能使用一次。
- 匿名對象可以作為方法的參數(shù)和返回值
- 作為參數(shù):
class Test {
public static void main(String[] args) {
// 普通方式
Scanner sc = new Scanner(System.in); input(sc);
// 匿名對象作為方法接收的參數(shù)
input(new Scanner(System.in));
}
public static void input(Scanner sc){
System.out.println(sc);
}
}
?作為返回值
class Test2 {
public static void main(String[] args) {
// 普通方式
Scanner sc = getScanner();
}
public static Scanner getScanner(){
// 普通方式
//Scanner sc = new Scanner(System.in);
//return sc;
// 匿名對象作為方法返回值
return new Scanner(System.in);
}
}
第3章 Random類
3.1 什么是Random類
此類的實例用于生成偽隨機數(shù)君旦。
例如澎办,以下代碼使用戶能夠得到一個隨機數(shù):
Random r = new Random();
int i = r.nextInt();
3.2 Random使用步驟
查看類
-
java.util.Random:該類需要import導入使后使用。
查看構造方法 -
public Random():創(chuàng)建一個新的隨機數(shù)生成器金砍。
查看成員方法 -
public int nextint (int n):返回一個偽隨機數(shù)局蚀,范圍在0 (包括)和指定值n (不包括)之間的 int 值。
使用Random類恕稠,完成生成3個10以內的隨機整數(shù)的操作琅绅,代碼如下:
//1. 導包
import java.util.Random;
public class Demo01_Random {
public static void main(String[] args) {
//2. 創(chuàng)建鍵盤錄入數(shù)據(jù)的對象
Random r = new Random();
for(int i = 0; i < 3; i++){
//3. 隨機生成一個數(shù)據(jù)
int number = r.nextint(10);
//4. 輸出數(shù)據(jù)
System.out.println("number:"+ number);
}
}
}
備注:創(chuàng)建一個Random對象,每次調用nextint()方法鹅巍,都會生成一個隨機數(shù)千扶。
3.3練習
獲取隨機數(shù)
獲取1-n之間的隨機數(shù),包含n,代碼如下:
// 導包
import java.util.Random;
public class Test01Random {
public static void main(String[] args) {
int n = 50;
// 創(chuàng)建對象
Random r = new Random();
// 獲取隨機數(shù)
int number = r.nextInt(n) + 1;
// 輸出隨機數(shù)
System.out.println("number:" + number);
}
}
猜數(shù)字小游戲
游戲開始時骆捧,會隨機生成一個1-100之間的整數(shù)number澎羞。玩家猜測一個數(shù)字guessNumber ,會與number作比較,系統(tǒng)提示大了或者小了敛苇,直到玩家猜中妆绞,游戲結束。
小貼士:先運行程序代碼,理解此題需求括饶,經(jīng)過分析后株茶,再編寫代碼
// 導包
import java.util.Random;
public class Test02Random {
public static void main(String[] args) {
//系統(tǒng)產(chǎn)生一個隨機數(shù)1-100之間的。
Random r = new Random();
int number = r.nextInt(100) + 1;
while(true){
// 鍵盤錄入我們要猜的數(shù)據(jù)
Scanner sc = new Scanner(System.in);
System. out. println ("請輸入你要猜的數(shù)字(1-100):")图焰;
int guessNumber = sc.nextInt();
//比較這兩個數(shù)據(jù)(用if語句)
if (guessNumber > number) {
System.out.println("你猜的數(shù)據(jù)"+ guessNumber + "大 了")启盛; }
else if (guessNumber < number) {
System.out.println("你猜的數(shù)據(jù)"+ guessNumber + "小了 "); }
else {
System.out.println ("恭喜你,猜中了");
break技羔;
}
}
}
}
第4章 ArrayList 類
4.1 引入——對象數(shù)組
使用學生數(shù)組僵闯,存儲三個學生對象,代碼如下:
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Test01StudentArray {
public static void main(String[] args) {
// 創(chuàng)建學生數(shù)組
Student[] students = new Student[3];
// 創(chuàng)建學生對象
Student si = new Student("曹操"堕阔,40);
Student s2 = new Student("劉備",35);
Student s3 = new Student("孫權"棍厂,30);
// 把學生對象作為元素賦值給學生數(shù)組
students[0] = s1;
students[1] = s2;
students[2] = s3;
// 遍歷學生數(shù)組
for(int x=0; x<students.length; x++) {
Student s = students[x];
System.out.println(s.getName()+"——"+s.getAge());
}
}
}
到目前為止,我們想存儲對象數(shù)據(jù)超陆,選擇的容器牺弹,只有對象數(shù)組。而數(shù)組的長度是固定的时呀,無法適應數(shù)據(jù)變化的需
求张漂。為了解決這個問題,Java提供了另一個容器java.util.ArrayList集合類谨娜,讓我們可以更便捷的存儲和操作對象數(shù)據(jù)航攒。
4.2什么是ArrayList類
java.util.ArrayList是大小可變的數(shù)組的實現(xiàn),存儲在內的數(shù)據(jù)稱為元素趴梢。此類提供一些方法來操作內部存儲 的元素漠畜。ArrayList中可不斷添加元素,其大小也自動增長坞靶。
4.3 ArrayList使用步驟
查看類
-
java.util.ArrayList <E> :該類需要 import導入使后使用憔狞。
<E>,表示一種指定的數(shù)據(jù)類型彰阴,叫做泛型瘾敢。E,取自Element (元素)的首字母尿这。在出現(xiàn)E的地方簇抵,我們使用一種引用數(shù)據(jù)類型將其替換即可,表示我們將存儲哪種引用類型的元素射众。代碼如下:
ArrayList<String>, ArrayList<Student>
查看構造方法
- public ArrayList():構造一個內容為空的集合碟摆。
基本格式:
ArrayList<String> list = new ArrayList<String>();
在JDK 7后,右側泛型的尖括號之內可以留空责球,但是<>仍然要寫焦履。簡化格式:
ArrayList<String> list = newArrayList<>();
查看成員方法
-
public boolean add(E e):將指定的元素添加到此集合的尾部拓劝。
參數(shù)E e雏逾,在構造ArrayList對象時嘉裤,<E>指定了什么數(shù)據(jù)類型,那么add(E e)方法中栖博,只能添加什么數(shù)據(jù)類型的對象屑宠。
使用ArrayList類,存儲三個字符串元素仇让,代碼如下:
public class Test02StudentArrayList {
public static void main(String[] args) {
// 創(chuàng)建學生數(shù)組
ArrayList<String> list = new ArrayList<>();
// 創(chuàng)建學生對象
String s1 = "曹操";
String s2 = "劉備";
String s3 = " 孫權 ";
//打印學生ArrayLis t集合
System.out.println(list);
//把學生對象作為元素添加到集合
list.add(s1);
list.add(s2);
list.add(s3);?
//打印學生ArrayList集合
System.out.println(list)典奉;
}
}
4.4 常用方法和遍歷
對于元素的操作,基本體現(xiàn)在——增、刪丧叽、查卫玖。常用的方法有:
- public boolean add(E e):將指定的元素添加到此集合的尾部。
- public E remove(int index):移除此集合中指定位置上的元素踊淳。返回被刪除的元素假瞬。
- public E get(int index):返回此集合中指定位置上的元素。返回獲取的元素迂尝。
-
public int size():返回此集合中的元素數(shù)脱茉。遍歷集合時,可以控制索引范圍垄开,防止越界琴许。
這些都是最基本的方法,操作非常簡單溉躲,代碼如下:
public class Demo01ArrayListMethod {
public static void main(String[] args) {
//創(chuàng)建集合對象
ArrayList<String> list = new ArrayList<String>()榜田;
//添加元素
list.add("hello");
list.add("world")锻梳;
list.add("java")箭券;
//public E get(int index):返回指定索引處的元素
System.out.println("get:"+list.get(0));
System.out.println("get:"+list.get(1))唱蒸;
System.out.println("get:"+list.get(2))邦鲫;
//public int size():返回集合中的元素的個數(shù)
System.out.println("size:"+list.size());
//public E remove(int index):刪除指定索引處的元素神汹,返回被刪除的元素
System.out.println("remove:"+list.remove(0))庆捺;
//遍歷輸出
for(int i = 0; i < list.size()屁魏; i++){
System.out.println(list.get(i))滔以;
}
}
}
4.5如何存儲基本數(shù)據(jù)類型
ArrayList對象不能存儲基本類型,只能存儲引用類型的數(shù)據(jù)氓拼。類似<int>不能寫你画,但是存儲基本數(shù)據(jù)類型對應的包裝類型是可以的抵碟。所以,想要存儲基本類型數(shù)據(jù)坏匪,<> 中的數(shù)據(jù)類型拟逮,必須轉換后才能編寫,轉換寫法如下:
基本類型 基本類型包裝類
byte | Byte |
---|---|
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
cha r | Character |
boolean | Boolean |
我們發(fā)現(xiàn)适滓,只有Integer和Character需要特殊記憶敦迄,其他基本類型只是首字母大寫即可。那么存儲基本類型數(shù)據(jù)凭迹,代碼如下:
public class Demo02ArrayListMethod {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
}
}
4.6 ArrayList 練習
數(shù)值添加到集合
生成6個1~33之間的隨機整數(shù)罚屋,添加到集合,并遍歷
public class Test01ArrayList {
public static void main(String[] args) {
//創(chuàng)建Random對象
Random random = new Random();
// 創(chuàng) 建ArrayList 對象
ArrayList<Integer> list = new ArrayList<>();
// 添加隨機數(shù)到集合
for (int i = 0; i < 6; i++) {
int r = random?nextInt(33) + 1;
list.add(r);
}
// 遍歷集合輸出
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
對象添加到集合
自定義4個學生對象,添加到集合,并遍歷
public class Test02ArrayList {
public static void main(String[] args) {
// 創(chuàng)建集合對象
ArrayList<Student> list = new ArrayList<Student>();
// 創(chuàng)建學生對象
Student s1 = new Student(" 趙麗穎 ",18);
Student s2 = new Student(" 唐嫣 ",20);
Student s3 = new Student(" 景甜 ",25);
Student s4 = new Student(" 柳巖 ",19);
// 把學生對象作為元素添加到集合中
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
// 遍歷集合
for(int x = 0; x < list.size(); x++) {
Student s = list.get(x);
System .out .println(s .getName ()+"——"+s .getAge ());
}
}
}
打印集合方法
定義以指定格式打印集合的方法(ArrayList類型作為參數(shù))嗅绸,使用{}擴起集合脾猛,使用@分隔每個元素。格式參照{元素 @元素@元素}鱼鸠。
public class Test03ArrayList {
public static void main(String[] args) {
// 創(chuàng)建集合對象
ArrayList<String> list = new ArrayList<String>();
// 添加字符串到集合中
lis t.add("張三豐")猛拴;
lis t.add("宋遠橋");?
list.add ("張無忌")瞧柔;
lis t.add("殷梨亭")漆弄;
// 調用方法
printArrayList(list);
}
public static void printArrayList(ArrayList<String> list) {
// 拼接左括號
System?out?print("{")造锅;
// 遍歷集合
for (int i = 0;i < list.size(); i++) {
// 獲取元素
String s = list.get(i)撼唾;
// 拼接@符號
if (i != list.size() - 1) {
System.out.print(s + "@");
} else {
// 拼接右括號
System.out.print(s + "}")哥蔚;
}
}
}
}
獲取集合方法
定義獲取所有偶數(shù)元素集合的方法(Arr ayList類型作為返回值)
public class Test04ArrayList {
public static void main(String[] args) {
//創(chuàng)建Random對象
Random random = new Random();
// 創(chuàng) 建ArrayList 對象
ArrayList<Integer> list = new ArrayList<>()倒谷;
// 添加隨機數(shù)到集合
for (int i = 0; i < 20; i++) {
int r = random.nextInt(1000) + 1;
list.add(r);
}
// 調用偶數(shù)集合的方法
ArrayList<Integer> arrayList = getArrayList(list);
System.out.println(arrayList)糙箍;
}
public static ArrayList<Integer> getArrayList(ArrayList<Integer> list) {
// 創(chuàng)建小集合,來保存偶數(shù)
ArrayList<Integer> smallList = new ArrayList<>()渤愁;
//遍歷list
for (int i = 0; i < list.size(); i++) {
// 獲取元素?
Integer num = list.get(i);
// 判斷為偶數(shù),添加到小集合中
if (num % 2 == 0){
smallList.add(num);
}
}
// 返回小集合
return smallList;
}
}