亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一篇文章帶你了解JAVA面對對象應(yīng)用

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

常用API

API理解

  • 什么是API

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

  • java中的API

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

如何使用API幫助文檔

主要是以下幾步:  

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

接下來講解String類,StringBuilder類

String類

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

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

二. 特點(diǎn):

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

關(guān)于String為啥不可改變

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

字符串實(shí)際上就是一個(gè) char 數(shù)組,并且內(nèi)部就是封裝了一個(gè) 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)部都是返回一個(gè)新的 String 實(shí)例。

三. 構(gòu)造方法

常用:

在這里插入圖片描述

代碼展示:

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

StringBuilder類

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

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

二、構(gòu)造方法:

常用:

在這里插入圖片描述

代碼展示:

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

結(jié)果為true

StringBuilder類的其他知識點(diǎn):

在這里插入圖片描述

拓展知識

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

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

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

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

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

基本原則 :

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

ArrayList

1.1ArrayList類概述

  • 什么是集合

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

  • ArrayList集合的特點(diǎn)

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

  • 泛型的使用

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

1.2ArrayList類常用方法

構(gòu)造方法 :

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

成員方法 :

在這里插入圖片描述

關(guān)于成員方法的具體操作 :

在這里插入圖片描述

代碼展示:

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

學(xué)生管理系統(tǒng)

案例需求 :

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

具體界面 :

在這里插入圖片描述

實(shí)現(xiàn)步驟 :

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

private String sid // 學(xué)生id​

private String name // 學(xué)生姓名​

private String age // 學(xué)生年齡​

private String address // 學(xué)生所在地

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

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

具體代碼:

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("------歡迎來到遠(yuǎn)遠(yuǎn)學(xué)生管理軟件------\n");
            System.out.println("      1  添加學(xué)生");
            System.out.println("      2  刪除學(xué)生");
            System.out.println("      3  修改學(xué)生");
            System.out.println("      4  查看所有學(xué)生");
            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("確認(rèn)是否退出(Y/N):");
                    char isExit = Student.readConfirmSelection();
                    if (isExit == 'Y') {
                        isFlag = false;
                        break;
                    }
            }
        }
    }

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

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

a.鍵盤錄入學(xué)生信息​

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

c.將學(xué)生對象添加到集合中​

d.提示添加成功信息

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

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

具體代碼:

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

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

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

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

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

具體代碼:

 public static void setStudent(ArrayList<Student> s) {
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入你要修改的學(xué)生學(xué)號:");
        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("你輸入的學(xué)號不存在,請重新輸入");
        } else {
            System.out.println("請輸入學(xué)生新姓名");
            String name = sc.nextLine();
            System.out.println("請輸入學(xué)生新年齡");
            String age = sc.nextLine();
            System.out.println("請輸入學(xué)生新居住的");
            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)

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    Netty簡單的入門代碼示例

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

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

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

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

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

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

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

最新評論