标记结束:
package day01;
import java.util.Scanner;
public class debug {
public static void main(String[] args) {
a: while (true) {
System.out.println("请输入一个星期:");
Scanner sc = new Scanner(System.in);
String day = sc.next();
if (day.equals("")) {
System.out.println("不合法");
return;
}
switch (day) {
case "周一":
System.out.println("跑步");
break a;
case "周二":
System.out.println("游泳");
break;
case "周三":
System.out.println("慢走");
break;
default:
System.out.println("请重新输入:");
break;
}
}
}
}
String s = "1 2 3 12 15";
String[] s1 = s.split(" ");//把字符串转换为数组形式
int a = Integer.parseInt("1");//数组转int型,由于不是基本类型的相互转换,所以要用到封装类的方法
System.out.println(a);
System.out.println("s1 = " + Arrays.toString(s1));
多态的作用:降低类之间的耦合性
数组也是引用数据类型
张瑞丰的学习笔记
package com.itheima.demo01;
import java.io.BufferedReader;
import java.io.FileReader;
接口的实现(抽象类)
public class Test {
public static void main(String[] args) throws Exception {
SQL a = new Oracle();
a.connect();
// SQL a = new SQL();
// MySQL a = new MySQL();
// a.connect();
// a.mySQLConnect();
//实际上 , 如果没有一套公共的约束,那么 不同的数据库,可能就会使用到不同的方法名
//但是,我们自己写代码,使用的是SQL,如果已经写好了一套方法, 连接数据库都需要使用connect()方法
//后面 ,老板需要 更换数据库 MySQL , 如果 mysql 里面有自己的连接方法,但是 名字叫做 mysqlConnect()
//那就需要改掉 之前我们写好的所有的connect()方法
//解决方案, 让后面所有的 数据库 都使用同一套 约束
}
}
interface SQL{
public void connect();
}
class MySQL implements SQL{
public void connect(){
System.out.println("使用了mysql 连接数据库");
}
public void mysqlSearch(){
System.out.println("使用了mysql 查询");
}
//.....
}
class Oracle implements SQL{
public void connect(){
System.out.println("使用了Oracle 连接数据库");
}
}
package day04;
import java.util.*;
public class ForDemo{//如果要在包内类外定义,则要加static给函数和变量,但是这数据就不安全
static int[] arr = {1, 32, 43, 26, 78};
static int max = arr[0];
public static void main(String[] args) {
int max2=getMax();
System.out.println(max2);
}
private static int getMax() {
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
}
成员方法与之前的定义比较就是少了个static而已
实体类里面没有main方法,就是一个定义
引用数据类型默认为null(如它new了一个新的对象)
成员变量有默认赋值,因为它在堆内存里面的;但局部变量没有,要初始化赋值。
有小括号的都是方法
Student s1=new Student();-》(默认构造方法,此方法不需要编写,由编译时java自动生成的)
构造方法要满足:1.没有返回值、2.没有void、3.方法名与类名相同,大小写也一致
帮助文档只能查类,不能查方法
nextLine()可以录入有空格的内容 next()不可以
如果以后前面录入的数据类型比较多,后面就选择next();如果我们前面只录入字符串 就用nextLine()
String类型输出的是一个内容,不是地址。
Object代表所有类型,
equals如果字符串之间相互比较,才会逐个比较,其他类型之间的比较直接return false
==:
1.基本数据类型之间比较大小
2.引用数据类型之间比较地址
==比较的是地址值,equals比较内容
<E>指的是汎型,限制集合存儲數據的類型,不讓它隨便添加
E不能保存基本數據類型,衹能用引用數據類型【int short char long float double boolean】
但是他們有對應的引用數據類型Byte Integer Character(Char)Float Boolean Double Long
以上基本數據類型+String類型不用new之外,其他的類用的時候都要new!
e.g
ArrayList<Student> s=new ArrayList<>();
Student<String> s1=new Student();
s.add(s1);
e.g
ArrayList<String> s=new ArrayList<>();
s.add("ss");【直接添加喔】
類、接口、數組(引用數據類型)
ArrayList<Integer> list2=new ArrayList()/new後面不需要指定汎型,是以爲jdk從1.7版本之後有-推導-特性;
法一:(加不加<String>都行,加這個專業一點)
public static void print(ArrayList<String> list){
}
法二:
public static void print(ArrayList list){
}
while (tr.remove("test")){
}
String類型中 ————形參的改變也是實參的改變
所以在方法的調用中數組也可以木有返回值
靜態方法衹能訪問靜態變量,成員方法可以訪問任意變量
在本類中可以直接調用本類的方法,在其它類中調用這個方法要類名。方法
多條數據用同一個數據就在它前面加一個static
//生成4位數字和字母驗證碼