面對物件應用
- 常用API
- String類
- 關于String為啥不可改變
- StringBuilder類
- String、StringBuffer 和 StringBuilder 的區別:
- ArrayList
- 1.1ArrayList類概述
- 1.2ArrayList類常用方法
- 學生管理系統
常用API
API理解
-
什么是API
??API (Application Programming Interface) :應用程式編程介面 -
java中的API
??指的就是 JDK 中提供的各種功能的 Java類,這些類將底層的實作封裝了起來,我們不需要關心這些類是如何實作的,只需要學習這些類如何使用即可,我們可以通過幫助檔案來學習這些API如何使用,
如何使用API幫助檔案
主要是以下幾步:
??1. 打開幫助檔案
??2. 找到選項卡中的索引框
??3. 在輸入框中輸入你要查找類,例如Random
??4. 看類在哪個包下
??5. 看類的描述
??6. 看構造方法
??7. 看成員方法
接下來講解String類,StringBuilder類
String類
一. 基本內容:
??String 類代表字串,Java 程式中的所有字串文字(例如“abc”)都被實作為此類的實體,也就是說,Java 程式中所有的雙引號字串,都是 String 類的物件,String 類在 java.lang 包下,所以使用的時候不需要導包!
二. 特點:
- 字串不可變,它們的值在創建后不能被更改
- 雖然 String 的值是不可變的,但是它們可以被共享
- 字串效果上相當于字符陣列( char[] ),但是底層原理是位元組陣列( byte[] )
關于String為啥不可改變
??這里可以根據 jdk 的原始碼來分析,
??字串實際上就是一個 char 陣列,并且內部就是封裝了一個 char 陣列,
??并且這里 char 陣列是被 final 修飾的:
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
??并且 String 中的所有的方法,都是對于 char 陣列的改變,只要是對它的改變,方法內部都是回傳一個新的 String 實體,
三. 構造方法
常用:

代碼展示:
/*
登錄系統
*/
public class UserLogin {
public static void main(String [] args) {
String username = "hxf1688";
String password = "2e5y8hxf";
for(int i=0; i < 3; i++) {
Scanner sc = new Scanner(System.in); //創建sc為輸入類
System.out.println("請輸入用戶名:");
String user = sc.nextLine();
System.out.println("請輸入密碼:");
String psw = sc.nextLine();
if(username.equals(user)&&password.equals(psw)) {
System.out.println("登錄成功");
break;
}
else {
if(i==2) {
System.out.println("您輸入錯誤次數過多,請聯系管理員");
}
else {
System.out.println("輸入失敗,您還有"+(2-i)+"嘗試機會");
}
}
}
}
}
StringBuilder類
一、基本內容:
??StringBuilder 是一個可變的字串類,我們可以把它看成是一個容器,這里的可變指的是 StringBuilder 物件中的內容是可變的
二、構造方法:
常用:
代碼展示:
StringBuilder s1 = StringBuilder(hello);
s2 = s1.append("world");
(s1 == s2) //結果為true
StringBuilder類的其他知識點:

拓展知識
String、StringBuffer 和 StringBuilder 的區別:
String、StringBuffer 和 StringBuilder 的區別:
??String:字串常量,字串長度不可變,Java中String 是immutable(不可變)的,用于存放字符的陣列被宣告為final的,因此只能賦值一次,不可再更改,
??StringBuffer:字串變數(Synchronized,即執行緒安全),如果要頻繁對字串內容進行修改,出于效率考慮最好使用 StringBuffer,如果想轉成 String 型別,可以呼叫 StringBuffer 的 toString() 方法,Java.lang.StringBuffer 執行緒安全的可變字符序列,在任意時間點上它都包含某種特定的字符序列,但通過某些方法呼叫可以改變該序列的長度和內容,可將字串緩沖區安全地用于多個執行緒,
??StringBuilder:字串變數(非執行緒安全),在內部 StringBuilder 物件被當作是一個包含字符序列的變長陣列,
基本原則 :
??如果要操作少量的資料用 String ;
??單執行緒操作大量資料用StringBuilder ;
??多執行緒操作大量資料,用StringBuffer,
ArrayList
1.1ArrayList類概述
-
什么是集合
? 提供一種存盤空間可變的存盤模型,存盤的資料容量可以發生改變 -
ArrayList集合的特點
? 底層是陣列實作的,長度可以變化 -
泛型的使用
? 用于約束集合中存盤元素的資料型別
1.2ArrayList類常用方法
構造方法 :
??public ArrayList() : 創建一個空的集合物件
成員方法 :

關于成員方法的具體操作 :

代碼展示:
import java.util.ArrayList;
public class Arraylist1 {
public static void main(String[] args) {
ArrayList<String> al =new ArrayList<>();
al.add("ding");
al.add("yu");
al.add("meng"); //增加元素
al.add(3,"wo"); //增加指定索引元素
System.out.println(al.remove("wo")); // 洗掉元素
System.out.println(al.remove(2));// 洗掉指定索引元素
System.out.println(al.set(1,"sun"));// 修改指定索引元素
System.out.println(al.get(0)); // 回傳指定索引處的元素
System.out.println(al.get(1));
System.out.println(al.size()); //集合長度
System.out.println(al);
}
}
學生管理系統
案例需求 :
? ??針對目前我們的所學內容,完成一個綜合案例:學生管理系統!該系統主要功能如下:
? ??添加學生:通過鍵盤錄入學生資訊,添加到集合中
? ??洗掉學生:通過鍵盤錄入要洗掉學生的學號,將該學生物件從集合中洗掉
? ??修改學生:通過鍵盤錄入要修改學生的學號,將該學生物件其他資訊進行修改
? ??查看學生:將集合中的學生物件資訊進行展示
? ??退出系統:結束程式
具體界面 :

實作步驟 :
-
定義學生類,包含以下成員變數 :
? private String sid // 學生id
? private String name // 學生姓名
? private String age // 學生年齡
? private String address // 學生所在地 -
學生管理系統主界面的搭建步驟 :
??首先用輸出陳述句完成主界面撰寫, 接著Scanner鍵盤輸入, 然后switch陳述句完成選擇的功能, 最后回圈完成功能結束后回到主界面
具體代碼:
import java.util.ArrayList;
import java.util.Scanner;
public class Studenttext {
public static void main(String[] args) {
boolean isFlag=true;
ArrayList<Student> s = new ArrayList<>();
while (isFlag) {
System.out.println("------歡迎來到遠遠學生管理軟體------\n");
System.out.println(" 1 添加學生");
System.out.println(" 2 洗掉學生");
System.out.println(" 3 修改學生");
System.out.println(" 4 查看所有學生");
System.out.println(" 5 退出");
System.out.println(" 請輸入你的選擇: ");
char selection = Student.readMenuSelection();
switch (selection){
case '1':
addStudent(s);
break;
case '2':
removeStudent(s);
break;
case '3':
setStudent(s);
break;
case '4':
findStudent(s);
break;
case '5':
System.out.print("確認是否退出(Y/N):");
char isExit = Student.readConfirmSelection();
if (isExit == 'Y') {
isFlag = false;
break;
}
}
}
}
-
學生管理系統的添加學生功能實作步驟 :
??定義一個方法,接收ArrayList集合 ,方法內完成添加學生的功能 : 最后呼叫添加學生方法
? a.鍵盤錄入學生資訊
? b.根據錄入的資訊創建學生物件
? c.將學生物件添加到集合中
? d.提示添加成功資訊 -
學生管理系統的查看學生功能實作步驟 :
?? 定義一個方法,接收ArrayList集合, 方法內遍歷集合,將學生資訊進行輸出, 在查看所有學生選項里呼叫查看學生方法
具體代碼:
public static void findStudent(ArrayList<Student> s) {
if (s.size()==0){
System.out.println("無資料,請先錄入學生資訊");
return;
}
System.out.println("學號\t\t姓名\t\t年齡\t\t居住地");
for (int i = 0; i < s.size() ; i++) {
Student a=s.get(i);
System.out.println(a.getSid()+"\t\t"+a.getName()+"\t\t"+a.getAge()+"歲\t"+a.getAddress());
}
}
-
學生管理系統的洗掉學生功能實作步驟 :
??定義一個方法,接收ArrayList集合, 方法中接收要洗掉學生的學號, 遍歷集合,獲取每個學生物件, 使用學生物件的學號和錄入的要洗掉的學號進行比較,如果相同,則將當前學生物件從集合中洗掉
,最后在洗掉學生選項里呼叫洗掉學生的方法 -
學生管理系統的修改學生功能實作步驟 :
??定義一個方法,接收ArrayList集合, 方法中接收要修改學生的學號, 通過鍵盤錄入學生物件所需的資訊,并創建物件, 遍歷集合,獲取每一個學生物件,并和錄入的修改學生學號進行比較.如果相同,則使用新學生物件替換當前學生物件, 在修改學生選項里呼叫修改學生的方法
具體代碼:
public static void setStudent(ArrayList<Student> s) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要修改的學生學號:");
String sid = sc.nextLine();
int index = -1;
for (int i = 0; i < s.size(); i++) {
Student b = s.get(i);
if (b.getSid().equals(sid)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("你輸入的學號不存在,請重新輸入");
} else {
System.out.println("請輸入學生新姓名");
String name = sc.nextLine();
System.out.println("請輸入學生新年齡");
String age = sc.nextLine();
System.out.println("請輸入學生新居住的");
String address = sc.nextLine();
Student a = new Student();
a.setSid(sid);
a.setName(name);
a.setAge(age);
a.setAddress(address);
for (int i = 0; i < s.size(); i++) {
Student b = s.get(i);
if (b.getSid().equals(sid)) {
s.set(i, a);
break;
}
}
System.out.println("修改成功");
}
}
- 退出系統
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/291471.html
標籤:java
