diff --git "a/31 \346\235\216\346\254\243/20221214 \345\244\215\344\271\240\345\260\217\347\273\223 .md" "b/31 \346\235\216\346\254\243/20221214 \345\244\215\344\271\240\345\260\217\347\273\223 .md" new file mode 100644 index 0000000000000000000000000000000000000000..34ff41e26acfdcf8def61a5f7dc85caa3577b525 --- /dev/null +++ "b/31 \346\235\216\346\254\243/20221214 \345\244\215\344\271\240\345\260\217\347\273\223 .md" @@ -0,0 +1,134 @@ +```java +num1[a] = ran.nexInt(); +System.out.println(Arrays.toString(num1))//直接打印数组,将数组以字符串形式输出 +``` + +#### 基本数据类型与引用类型的区别:是否直接参与运算 + +## API + +应用程序编程接口 + +#### java中的API + +指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。 + +## String + + String 类在 java.lang 包下,所以使用的时候不需要导包 + +String 类代表字符串,Java 程序中的所有字符串文字;Java 程序中所有的双引号字符串,都是 String 类的对象 + +```java +String name = new String("xiaohong"); +System.out.println(name);//输出结果为xiaohong +``` + +字符串不可变,它们的值在创建后不能被更改 + +```java +String a = "red"; +System.out.println(a); +a = "blue";//a不等于上一个a,它重新创造了一个地址,赋值给了这个a +System.out.println(a);//输出结果为blue + +``` + +#### 常用的构造方法 + +```java +public String()// : 创建一个空白字符串对象,不含有任何内容 +public String(char[] chs)// : 根据字符数组的内容,来创建字符串对象 +public String(String original)// : 根据传入的字符串内容,来创建字符串对象 +String s = “abc”; //直接赋值的方式创建字符串对象,内容就是abc +``` + +##### 示例: + +```java +public static void main(String[] args) { +// public String() : 创建一个空白字符串对象,不含有任何内容 +String s1 = new String(); +System.out.println(s1); +// public String(char[] chs) : 根据字符数组的内容,来创建字符串对象 +char[] chs = {'a','b','c'}; +String s2 = new String(chs); +System.out.println(s2); +// public String(String original) : 根据传入的字符串内容,来创建字符串对象 +String s3 = new String("123"); +System.out.println(s3); +``` + +#### 为什么判断要用equals + +#### 通过构造方法创建 + +通过 new 创建的字符串对象,每一次 new 都会申请一个新的内存空间,虽然内容相同,但是地址值不同所以直接== 是不成立的 + +##### 示例: + +```java +String a = "red"; +String b = new String("red");//产生了新的地址 +if(a==b){ + System.out.println("true"); +}else{ + System.out.println("false"); +}//因为地址不同,将会输出false + +if(a.equals(b)){//先找到内存地址的位置,将里面的数据拿出进行比较 + System.out.println("true"); +}else{ + System.out.println("false"); +} +``` + +#### 直接赋值方式创建 + +以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM虚 拟机 都只会建立一个 String 对象,并在字符串池中维护 + +```java +String a = "red"; +String b = "red"; +if(a==b){ + System.out.println("true"); +}else{ + System.out.println("false");//因为没有new,是用""直接赋值,所以输出false + //字符串输出为字符,比较为内存地址 +``` + +比较基本数据类型:比较的是具体的值 + +比较引用数据类型:比较的是对象(内存)地址值 + +## 作业 + +计算煤气用量 + +```java +public class task6 { + public static void main(String[] args) { + for (int x = 1;x <= 100;x++){ + if (x * 4.05 + (100-x) * 5.06 == 445.40){ + System.out.println("二档阶梯用了:" + x +"立方" + "\n" + "三档阶梯用了:" + (100-x) + "立方"); + } + } + } +} +``` + +倒叙乘法口诀表 + +```java +public class task7 { + public static void main(String[] args) { + for (int a = 9;a <=9 & a>= 1;a--){ + for (int b =9;b >=a ;b--){ + System.out.print(a+"*"+b+"="+a*b+"\t"); + } + System.out.println(""); + } + } +} +``` + diff --git "a/31 \346\235\216\346\254\243/20221216 \346\226\271\346\263\225&\345\207\275\346\225\260.md" "b/31 \346\235\216\346\254\243/20221216 \346\226\271\346\263\225&\345\207\275\346\225\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..5cc1c51c0114874ea779d2c719aa0701cde57cce --- /dev/null +++ "b/31 \346\235\216\346\254\243/20221216 \346\226\271\346\263\225&\345\207\275\346\225\260.md" @@ -0,0 +1,161 @@ +## 方法&函数 + +将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 + +###### 方法必须先创建才可以使用,该过程成为方法定义 + +###### 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 + +#### 无参数方法定义和调用 + +##### 定义格式: + +方法必须先定义,后调用,否则程序将报错 + +```java +public static void 方法名 ( ) { + // 方法体; +} +//示例: +public static void method ( ) { + // 方法体; +} + + +//调用格式: +方法名(); +//示例 +method(); +``` + +每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部 代码调用完毕之后,会从栈内存中弹栈消失 + +#### 带参数方法的定义和调用 + +##### 定义格式: + +```java +public static void 方法名 (参数1) { + 方法体; +} +public static void 方法名 (参数1, 参数2, 参数3...) { + 方法体; +} +//示例 +public static void isEvenNumber(int number){ + ... +} +public static void getMax(int num1, int num2){ + ... +} +/* + 方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错 + 方法定义时,多个参数之间使用逗号( ,)分隔 +*/ + + +//调用格式: +方法名(参数); +方法名(参数1,参数2); +//示例 +isEvenNumber(10); +getMax(10,20);//方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错 +``` + +#### 形参和实参 + +```java +int number//形参:方法定义中的参数 + //等同于变量定义格式 +10 number//实参:方法调用中的参数 + //等同于使用变量或常量 +``` + +#### 方法分类 + +```java +package 方法; + +public class D3 { + public static void main(String[] args) { + // 方法的分类 , 有没有返回值,有没有参数 + // 1 无返回值,也没有参数 + say(); + // 2 有返回值,但没有参数 + int a = getOne();// 调用方法,这个方法有返回值,返回1 + System.out.println(a);// + // 3 无返回值,但有参数 + play("小强"); + play("光头强"); + // 4 有返回值,也有参数 + int sum = getSum(1,2); + System.out.println(sum);// + } + + // 1 无返回值,也没有参数 + public static void say(){ + System.out.println("今天老师去做核酸了!"); + } + + // 2 有返回值,但没有参数 int 表示返回的数据类型 + public static int getOne(){ + return 1; + } + // 3 无返回值,但有参数 void 表示无返回值 + public static void play(String name){ + System.out.println("今天"+name+"去公园玩了!"); + } + + // 4 有返回值,也有参数 + public static int getSum(int a,int b){ + return a+b;// 1 + 2 =3 + } +} +``` + +## 作业 + + 定义一函数,用于求2个数中的较大数,并将其返回,这2个数字在主函数中由用户输入 + +```java +import java.util.Scanner; + +public class task9 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入第一个数:"); + double num1 = sc.nextDouble(); + System.out.println("请输入第二个数:"); + double num2 = sc.nextDouble(); + double Max=num3(num1,num2); + System.out.println(Max); + } + public static double num3(double num1,double num2){ + return num1>num2?num1:num2; + } +} +``` + +在主函数中从键盘接收X, Y , Z3个数,编写函数计算这3个数的立方和并返回计算结果:S=X3+Y3+Z3 + +```java +import java.util.Scanner; + +public class task10 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入第一个数:"); + double x = sc.nextDouble(); + System.out.println("请输入第二个数:"); + double y = sc.nextDouble(); + System.out.println("请输入第三个数:"); + double z = sc.nextDouble(); + double s = sum(x,y,z); + System.out.println("计算为:"+s); + } + public static double sum(double x,double y,double z){ + return x*x*x+y*y*y+z*z*z; + } +} +``` +