IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA阶段五之面对对象应用 -> 正文阅读

[Java知识库]JAVA阶段五之面对对象应用

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

学生管理系统

案例需求 :
? ??针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
? ??添加学生:通过键盘录入学生信息,添加到集合中
? ??删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
? ??修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
? ??查看学生:将集合中的学生对象信息进行展示
? ??退出系统:结束程序
具体界面 :
在这里插入图片描述
实现步骤 :

  1. 定义学生类,包含以下成员变量 :
    ? private String sid // 学生id
    ? private String name // 学生姓名
    ? private String age // 学生年龄
    ? private String address // 学生所在地

  2. 学生管理系统主界面的搭建步骤 :
    ??首先用输出语句完成主界面编写, 接着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;
                    }
            }
        }
    }
  1. 学生管理系统的添加学生功能实现步骤 :
    ??定义一个方法,接收ArrayList集合 ,方法内完成添加学生的功能 : 最后调用添加学生方法
    ? a.键盘录入学生信息
    ? b.根据录入的信息创建学生对象
    ? c.将学生对象添加到集合中
    ? d.提示添加成功信息

  2. 学生管理系统的查看学生功能实现步骤 :
    ?? 定义一个方法,接收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());
        }
}            
  1. 学生管理系统的删除学生功能实现步骤 :
    ??定义一个方法,接收ArrayList集合, 方法中接收要删除学生的学号, 遍历集合,获取每个学生对象, 使用学生对象的学号和录入的要删除的学号进行比较,如果相同,则将当前学生对象从集合中删除
    ,最后在删除学生选项里调用删除学生的方法

  2. 学生管理系统的修改学生功能实现步骤 :
    ??定义一个方法,接收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("修改成功");
        }
    }
  1. 退出系统
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:40:39  更:2021-08-02 10:40:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/12 2:41:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码