标记结束:

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位數字和字母驗證碼