欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章帶你了解JAVA面對對象應用

 更新時間:2021年08月03日 08:59:14   作者:鉛華殿  
Java是一門面向?qū)ο蟮恼Z言。對象是Java程序中的基本實體。除了對象之外Java程序同樣處理基本數(shù)據(jù)。下面這篇文章主要給大家總結了關于Java中面向?qū)ο蟮闹R點,需要的朋友可以參考借鑒,下面來一起看看吧

常用API

API理解

  • 什么是API

API (Application Programming Interface) :應用程序編程接口

  • java中的API

指的就是 JDK 中提供的各種功能的 Java類,這些類將底層的實現(xiàn)封裝了起來,我們不需要關心這些類是如何實現(xiàn)的,只需要學習這些類如何使用即可,我們可以通過幫助文檔來學習這些API如何使用。

如何使用API幫助文檔

主要是以下幾步:  

1. 打開幫助文檔
  2. 找到選項卡中的索引框
  3. 在輸入框中輸入你要查找類,例如Random
  4. 看類在哪個包下
  5. 看類的描述
  6. 看構造方法
  7. 看成員方法

接下來講解String類,StringBuilder類

String類

一. 基本內(nèi)容:  

String 類代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被實現(xiàn)為此類的實例。也就是說,Java 程序中所有的雙引號字符串,都是 String 類的對象。String 類在 java.lang 包下,所以使用的時候不需要導包!

二. 特點:

  • 字符串不可變,它們的值在創(chuàng)建后不能被更改
  • 雖然 String 的值是不可變的,但是它們可以被共享
  • 字符串效果上相當于字符數(shù)組( char[] ),但是底層原理是字節(jié)數(shù)組( byte[] )

關于String為啥不可改變

這里可以根據(jù) jdk 的源碼來分析。

字符串實際上就是一個 char 數(shù)組,并且內(nèi)部就是封裝了一個 char 數(shù)組。

并且這里 char 數(shù)組是被 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 數(shù)組的改變,只要是對它的改變,方法內(nèi)部都是返回一個新的 String 實例。

三. 構造方法

常用:

在這里插入圖片描述

代碼展示:

/*
登錄系統(tǒng)
*/
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);      //創(chuàng)建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("您輸入錯誤次數(shù)過多,請聯(lián)系管理員");
				}
				else {
					System.out.println("輸入失敗,您還有"+(2-i)+"嘗試機會");
				}
			}
		}
	}
}

StringBuilder類

一、基本內(nèi)容:  

StringBuilder 是一個可變的字符串類,我們可以把它看成是一個容器,這里的可變指的是 StringBuilder 對象中的內(nèi)容是可變的

二、構造方法:

常用:

在這里插入圖片描述

代碼展示:

StringBuilder s1 = StringBuilder(hello);
s2 = s1.append("world");
(s1 == s2)    //

結果為true

StringBuilder類的其他知識點:

在這里插入圖片描述

拓展知識

String、StringBuffer 和 StringBuilder 的區(qū)別:

String:字符串常量,字符串長度不可變。Java中String 是immutable(不可變)的。用于存放字符的數(shù)組被聲明為final的,因此只能賦值一次,不可再更改。

StringBuffer:字符串變量(Synchronized,即線程安全)。如果要頻繁對字符串內(nèi)容進行修改,出于效率考慮最好使用

StringBuffer,如果想轉(zhuǎn)成 String 類型,可以調(diào)用 StringBuffer 的 toString() 方法。Java.lang.StringBuffer 線程安全的可變字符序列。在任意時間點上它都包含某種特定的字符序列,但通過某些方法調(diào)用可以改變該序列的長度和內(nèi)容??蓪⒆址彌_區(qū)安全地用于多個線程。

StringBuilder:字符串變量(非線程安全)。在內(nèi)部 StringBuilder 對象被當作是一個包含字符序列的變長數(shù)組。

基本原則 :

  • 如果要操作少量的數(shù)據(jù)用 String ;
  • 單線程操作大量數(shù)據(jù)用StringBuilder ;
  • 多線程操作大量數(shù)據(jù),用StringBuffer。

ArrayList

1.1ArrayList類概述

  • 什么是集合

提供一種存儲空間可變的存儲模型,存儲的數(shù)據(jù)容量可以發(fā)生改變

  • ArrayList集合的特點

底層是數(shù)組實現(xiàn)的,長度可以變化

  • 泛型的使用

用于約束集合中存儲元素的數(shù)據(jù)類型

1.2ArrayList類常用方法

構造方法 :

public ArrayList() : 創(chuàng)建一個空的集合對象

成員方法 :

在這里插入圖片描述

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

在這里插入圖片描述

代碼展示:

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);
    }
}

學生管理系統(tǒng)

案例需求 :

  • 針對目前我們的所學內(nèi)容,完成一個綜合案例:學生管理系統(tǒng)!該系統(tǒng)主要功能如下:
  • 添加學生:通過鍵盤錄入學生信息,添加到集合中
  • 刪除學生:通過鍵盤錄入要刪除學生的學號,將該學生對象從集合中刪除
  • 修改學生:通過鍵盤錄入要修改學生的學號,將該學生對象其他信息進行修改
  • 查看學生:將集合中的學生對象信息進行展示
  • 退出系統(tǒng):結束程序

具體界面 :

在這里插入圖片描述

實現(xiàn)步驟 :

1.定義學生類,包含以下成員變量 :​

private String sid // 學生id​

private String name // 學生姓名​

private String age // 學生年齡​

private String address // 學生所在地

2.學生管理系統(tǒng)主界面的搭建步驟 :

首先用輸出語句完成主界面編寫, 接著Scanner鍵盤輸入, 然后switch語句完成選擇的功能, 最后循環(huán)完成功能結束后回到主界面

具體代碼:

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;
                    }
            }
        }
    }

3.學生管理系統(tǒng)的添加學生功能實現(xiàn)步驟 :

定義一個方法,接收ArrayList集合 ,方法內(nèi)完成添加學生的功能 : 最后調(diào)用添加學生方法​

a.鍵盤錄入學生信息​

b.根據(jù)錄入的信息創(chuàng)建學生對象​

c.將學生對象添加到集合中​

d.提示添加成功信息

4.學生管理系統(tǒng)的查看學生功能實現(xiàn)步驟 :

定義一個方法,接收ArrayList集合, 方法內(nèi)遍歷集合,將學生信息進行輸出, 在查看所有學生選項里調(diào)用查看學生方法

具體代碼:

    public static void findStudent(ArrayList<Student> s) {
        if (s.size()==0){
            System.out.println("無數(shù)據(jù),請先錄入學生信息");
            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());
        }
}            

學生管理系統(tǒng)的刪除學生功能實現(xiàn)步驟 :

定義一個方法,接收ArrayList集合, 方法中接收要刪除學生的學號, 遍歷集合,獲取每個學生對象, 使用學生對象的學號和錄入的要刪除的學號進行比較,如果相同,則將當前學生對象從集合中刪除,最后在刪除學生選項里調(diào)用刪除學生的方法

學生管理系統(tǒng)的修改學生功能實現(xiàn)步驟 :

定義一個方法,接收ArrayList集合, 方法中接收要修改學生的學號, 通過鍵盤錄入學生對象所需的信息,并創(chuàng)建對象, 遍歷集合,獲取每一個學生對象。并和錄入的修改學生學號進行比較.如果相同,則使用新學生對象替換當前學生對象, 在修改學生選項里調(diào)用修改學生的方法

具體代碼:

 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("修改成功");
        }
    }

退出系統(tǒng)

總結

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!

相關文章

  • Spring不能注入Static變量的原因及Spring注入靜態(tài)變量

    Spring不能注入Static變量的原因及Spring注入靜態(tài)變量

    這篇文章主要介紹了Spring不能注入Static變量的原因及Spring注入靜態(tài)變量,需要的朋友可以參考下
    2016-01-01
  • Java大批量導出Excel數(shù)據(jù)的優(yōu)化過程

    Java大批量導出Excel數(shù)據(jù)的優(yōu)化過程

    幾十萬上百萬行的數(shù)據(jù)是很常見的。本文主要介紹了Java大批量導出Excel數(shù)據(jù)的優(yōu)化過程,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java多線程之死鎖的出現(xiàn)和解決方法

    Java多線程之死鎖的出現(xiàn)和解決方法

    本篇文章主要介紹了Java多線程之死鎖的出現(xiàn)和解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java執(zhí)行cmd命令的舉例與注意事項

    Java執(zhí)行cmd命令的舉例與注意事項

    Java應用程序主要是通過Runtime和Process兩個類來執(zhí)行cmd命令,下面這篇文章主要給大家介紹了關于Java執(zhí)行cmd命令的方法與注意事項,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • Java校驗是否為連續(xù)的區(qū)間問題

    Java校驗是否為連續(xù)的區(qū)間問題

    這篇文章主要介紹了Java校驗是否為連續(xù)的區(qū)間問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java并發(fā)之異步的八種實現(xiàn)方式

    Java并發(fā)之異步的八種實現(xiàn)方式

    本文主要介紹了Java并發(fā)之異步的八種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • Netty簡單的入門代碼示例

    Netty簡單的入門代碼示例

    這篇文章主要介紹了Netty簡單的入門代碼示例,Netty 的內(nèi)部實現(xiàn)是很復雜的,但是 Netty 提供了簡單易用的API從網(wǎng)絡處理代碼中解耦業(yè)務邏輯,Netty 是完全基于 NIO 實現(xiàn)的,所以整個 Netty 都是異步的,需要的朋友可以參考下
    2023-12-12
  • Java中Stream流的常用方法代碼示例

    Java中Stream流的常用方法代碼示例

    這篇文章主要介紹了Java中Stream流的常用方法代碼示例,Stream類中每一個方法都對應集合上的一種操作,將真正的函數(shù)式編程引入到Java中,能 讓代碼更加簡潔,極大地簡化了集合的處理操作,提高了開發(fā)的效率和生產(chǎn)力,需要的朋友可以參考下
    2023-10-10
  • WIN10系統(tǒng)中添加bat腳本重啟jar服務

    WIN10系統(tǒng)中添加bat腳本重啟jar服務

    在bat腳本中執(zhí)行java服務,命令與cmd中類似,下面這篇文章主要給大家介紹了關于WIN10系統(tǒng)中添加bat腳本重啟jar服務的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Java BigDecimal除法精度和格式化輸出方式

    Java BigDecimal除法精度和格式化輸出方式

    這篇文章主要介紹了Java BigDecimal除法精度和格式化輸出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論