1.软件使用

image.png

2.项目结构

image.png

3.数组定义格式

3.1数组概述

//数组中存储的数据是多个同类型的数据
image.png

3.2数组初始化之动态初始化

image.png
//动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型 []变量名=new 数据类型[数组长度];
范例:int[] arr=new int[3];

3.3数组初始化之静态初始化

//就算知道有几个元素也不能写出来
image.png

3.4数组元素访问

image.png
image.png

image.png

3.5数组操作的两个常见小问题

索引越界和空指针异常
image.png

3.6内存分配

image.png
image.png

image.png

image.png

3.7多个数组指向相同内存图

当两个数组指向相同时,任何一个数组修改了堆内存的数据,那么另一个数组去访问数值是发生了改变了的
image.png
image.png

3.8数组遍历

通过for循环来遍历,如果数组中元素太多不方便数的时候
我们可以通过数组名.length来获取数组元素数量
image.png

3.9数组获取最值

image.png

4.方法

image.png

4.1不带参数方法的定义和调用

4.1.1方法定义

image.png

4.1.2方法调用

image.png

4.1.3方法练习

image.png
package hello;
import java.util.Scanner;
public class test01{
public static void main(String[] args) {
max();
}
public static void max()
{
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int c=a>b?a:b;
System.out.println(c);

}
}

4.2带参数方法的定义和调用

4.2.1定义

image.png

4.2.2调用

image.png

4.2.3带参数方法练习

image.png
package hello;
public class test01{
public static void main(String[] args) {
int a=10;
int b=20;
max(a,b);
}
public static void max(int a,int b){
int c=a>b?a:b;
System.out.println(c);
}
}

4.3带返回值方法的定义和调用

4.3.1方法定义

image.png

4.3.2方法调用

image.png

4.4方法注意事项和通用格式

方法不能嵌套定义
void表示无返回值,可省略return,也可单独的书写return,后面不加数据
image.png
image.png

4.5方法重载

image.png
image.png
image.png

4.6方法的参数传递

4.6.1基本类型

image.png

4.6.2引用类型

image.png

4.6.3练习_数组最大值

//定义一个方法来获取数组中的最大值
package hello;
public class test01{
public static void main(String[] args) {
int[] arr= {25,12,56,24};
int max=max(arr);
System.out.println(max);
}
public static int max(int[] arr){
int max=arr[0];
for(int i=1;i if(arr[i]>max)
max=arr[i];
}
return max;
}
}

5.Debug

image.png6.案例

6.1案例一_不死神兔

image.png
package hello;
public class test01{
public static void main(String[] args) {
int[] arr=new int[20];
arr[0]=1;
arr[1]=1;
for(int i=2;i {
arr[i]=arr[i-2]+arr[i-1];
}
System.out.println(arr[19]);
}
}

6.2案例二_百钱百鸡

image.pngimage.png

6.3案例三_数组相同?

image.png
package hello;
public class test01{
public static void main(String[] args) {
int[] arr1= {11,12,13,14};
int[] arr2= {11,12,13,14};
boolean x=isSame(arr1,arr2);
System.out.println(x);


}
public static boolean isSame(int[] arr1,int[] arr2)
{
if(arr1.length!=arr2.length)
return false;
else
for(int i=0;i {
if(arr1[i]!=arr2[i])
return false;
}
return true;
}
}

7.面向对象

7.1类的定义

成员方法前不加static
image.pngimage.png

7.2对象的使用

image.png

7.2.1对象内存图(多个对象指向相同)

image.png
image.png

7.2.2成员变量和局部变量

image.png

7.3封装

image.png

7.3.1private关键字的使用

通过对象名直接访问成员变量的方式存在安全隐患
image.png
image.png

7.3.2this关键字

image.png

7.4构造方法

构造方法是一种特殊的方法
作用:用来创建对象
功能:主要是完成对象数据的初始化
格式:修饰符 类名(参数){ }
image.png

8.字符串

8.1API

API是应用编程接口,Java中的API指JDK提供的各种功能的Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可

8.2String

Java程序中所有的双引号字符串,都是String类的对象
字符串不可变,它们的值在创建后不能被修改,但是它们可以被共享
字符串效果上相当于字符数组(char[]),但底层是字节数组(byte[])

8.2.1String构造方法

image.png
public class string {
public static void main(String[] args) {
String s1=new String();
System.out.println(“s1:”+s1);
char[] chs= {‘a’,’b’,’c’};
String s2=new String(chs);
System.out.println(“s2:”+s2);
byte[] bys= {97,98,99};
String s3=new String(bys);
System.out.println(“s3:”+s3);
String s4=”abc”;
System.out.println(“s4:”+s4);
//推荐使用直接赋值的方式
}
}

8.2.2String对象的特点

image.pngimage.png

8.2.3字符串的比较

image.png
字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫做equals()
格式形如s1.equals(s2),结果返回TRUE或FALSE
image.png

8.2.4案例_用户登录

image.png
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
String s=”110”;
String psw=”123”;
Scanner sc=new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println(“请输入账号:”);
String a=sc.nextLine();
System.out.println(“请输入密码:”);
String b=sc.nextLine();
if(s.equals(a)&&psw.equals(b)) {
System.out.println(“登陆成功!”);
break;
}
else {
if(i==2)
System.out.println(“您的机会已用光,请及时联系管理员”);
else
System.out.println(“您还有”+(2-i)+”次机会”);
}
}
}
}

8.2.5案例_遍历字符串

image.png
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个字符串:”);
String s=sc.nextLine();
for(int i=0;i System.out.println(s.charAt(i));
}

}
}

8.2.6案例_统计字符次数
image.png
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个字符串:”);
String s=sc.nextLine();
int a=0;
int b=0;
int c=0;
for(int i=0;i if(s.charAt(i)>=’A’&&s.charAt(i)<=’Z’){
a++;
}
else if(s.charAt(i)>=’a’&&s.charAt(i)<=’z’) {
b++;
}
else if(s.charAt(i)>=’0’&&s.charAt(i)<=’9’) {
c++;
}
}
System.out.println(“大写字母的个数为:”+a);
System.out.println(“小写字母的个数为:”+b);
System.out.println(“数字的个数为:”+c);
}
}

8.2.7案例_拼接字符串

image.png
package first;
public class string {
public static void main(String[] args) {
int[] arr= {1,2,3};
String str=arrayToString(arr);
System.out.println(str);
}
public static String arrayToString(int[] arr) {
String s=””;
s+=”[“;
for(int i=0;i if(i!=arr.length-1) {
s+=arr[i];
s+=’,’;
}
else
s+=arr[i];
}
s+=”]”;
return s;
}
}

8.2.8案例_字符串反转

image.png
package first;
import java.util.Scanner;
public class string {
public static void main(String[] args) {
@SuppressWarnings(“resource”)
Scanner sc=new Scanner(System.in);
System.out.println(“请输入一个字符串:”);
String s=sc.nextLine();
String str=reverse(s);
System.out.println(str);

}
public static String reverse(String s) {
String s1=””;
for(int i=s.length()-1;i>=0;i—){
s1+=s.charAt(i);
}
return s1;
}
}
image.png

8.3StringBuilder

8.3.1StringBuilder概述

image.pngStringBulider是一个可变的字符串类。我们可以把它看成是一个容器,这里的可变指的是StringBulider对象中的内容是可变的!
image.png

8.3.2StringBuilder构造方法

image.png
StringBuilder sb=new StringBuilder();
StringBuilder sb2=new StringBuilder(“hello”);

8.3.2StringBuilder添加和反转方法

image.png
sb.reverse();
sb.append(“hello”).append(“world”).append(“java”);
//因为返回的是对象,所以可以继续调用

8.3.3StringBuilder和String相互转换

image.png
String s=sb.toString();
StringBuilder sb=new StringBuilder(s);

8.3.4案例_拼接字符串

image.png
package first;
public class StringBuliderDemo {
public static void main(String[] args) {
int []arr= {1,2,3,4};
String str=arrayToString(arr);
System.out.println(str);
}

  1. public static String arrayToString(int[] arr) {<br /> StringBuilder sb=new StringBuilder();<br /> sb.append("[");<br /> for(int i=0;i<arr.length;i++)<br /> {<br /> if(i!=arr.length-1) {<br /> sb.append(arr[i]);<br /> sb.append(",");<br /> }<br /> else<br /> sb.append(arr[i]);<br /> }<br /> sb.append("]");<br /> String s=sb.toString();<br /> return s;<br /> }<br />}<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/29081561/1654591605940-f46f63f1-871a-442d-8f13-875c87a3e587.png#clientId=uc0e8888c-ef56-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=126&id=u1d2ba6b9&margin=%5Bobject%20Object%5D&name=image.png&originHeight=195&originWidth=798&originalType=binary&ratio=1&rotation=0&showTitle=false&size=100639&status=done&style=none&taskId=ue9669cf1-7a30-4a67-9584-f01ba435f22&title=&width=517.3636474609375)

9.集合基础

集合类的特点:提供一种可变的存储模型,存储的数据容量可以发生改变

9.1ArrayList

需要导包,在出现E的地方我们使用引用数据类型替换即可
image.png

9.1.1ArrayList构造方法和添加方法

image.png
image.png

9.1.2ArrayList常用方法

image.png

9.1.3案例_遍历学生对象

image.png
image.png

9.1.4案例_进阶版本遍历学生对象

image.png
image.png
image.png

9.2

9.3

9.4