java入门(纯代码笔记)

一、创建第一个程序

在文件中创建一个后缀为.java的文本,用记事本打开进行编写

 二、编译代码

打开密令进行编译和运行

三、初识JDK

1.jdk有哪些组成

JVM虚拟机:真正运行java程序的地方

核心类库:java自己写好的一些程序,给咱们的程序调用的

开发工具:javac、Java、……

2.java的跨平台是什么含义,java如何实现跨平台

一次编译、处处可用

我们的程序只需要开发一次,就可以在各种安装了JVM的系统平台上运行

四、使用IDEA开发HelloWorld程序

1.使用idea开发java程序的步骤是什么

project - module - package - class

project中可以创建多个module

module中可以创建多个package

package中可以创建多个class

2.创建都是用哪个关键字

New project/module/package/class

3.idea中的java程序是自动编译和执行的,那编译后的class文件在哪

在工程路径下的一个out文件夹里

IEDA常用快捷键

main/psvm、sout、……        快捷键入相关代码

ctrl+d        复制当前行数据到下一行

ctrl+v        删除所在行、建议用ctrl+x

ctrl+alt+l        格式化代码

alt+shift+上移        上下移动当前代码

ctrl+/,ctrl+shift+/        对代码进行注释

五、注释

package com.auc.note;

/**
 * 这是一个文档注释
 */
public class NoteDemo {
    public static void main(String[] args) {
        //以下是一个打印语句
        System.out.println("开始学习java程序");
        /*
        这是
        一个多行注释
         */
        System.out.println("注释");
    }
}

六、字面量

package com.auc.literal;

public class LiteralDemo {
    public static void main(String[] args) {
//        掌握程序中的书写格式
//        1、整数
        System.out.println(666);
        //2.字符
        System.out.println('a');
        System.out.println('0');
        System.out.println(' ');
        //特殊字符”\n 换行  \t 代表一个tab
        System.out.println('中');
        System.out.println('\n');
        System.out.println('国');
        System.out.println('\t');

        //3、字符串
        System.out.println("我爱你中国");
    }
}

七、变量

package com.auc.variable;

public class VariableDemo {
    public static void main(String[] args) {
        //数据类型 变量名 = 数据;
        int age = 23;
        System.out.println(age);

        System.out.println("……………………");

        int number = 666;
        System.out.println(number);

        System.out.println("--------------");
        int age2 = 18;
        System.out.println(age2);
        age2=19;
        System.out.println(age2);
        age2 = age2 + 1;
        System.out.println(age2);

        System.out.println("--------------");
        
    }
}

1、变量是什么,变量的完整定义格式是什么样的

用来存储一个数据的,本质是内存中的一块区域

数据类型 变量名称 = 数据

2、为啥要用变量,变量有啥好处

使用变量记要处理的数据,编写的代码更灵活,管理代码更方便

3、变量有什么特点

变量里装的数据可以被替换

package com.auc.variable;

public class VariableDemo2 {
    public static void main(String[] args) {
        //1、变量先声明后使用
        int age = 18;
        System.out.println(age);
        //2、变量是什么类型、就应该用来装什么类型的数据
        //age=9.8
        //3、变量是从定义开始到}截至,定义多个变量的名称不能一样
        int a =19;
        //int a = 20
        //4、定义变量时可以不赋值,但是使用时必须赋值
    }

}

使用变量时有哪些注意的点

变量先声明后使用

变量是什么类型、就应该用来装什么类型的数据

变量存在访问范围,同一个范围内,多个变量的名字不能一样

定义变量时可以不赋值,但是使用时必须赋值

八、类型转换

package om.auc.type;

public class TypeDemo {
    public static void main(String[] args) {
        byte a = 12;
        int b = a;
        System.out.println(a);
        System.out.println(b);
    }
}

自动类型转换

package om.auc.type;

public class TypeDemo {
    public static void main(String[] args) {
      byte a = 10;
      int b = 20;
      long c =30;
      long rs = a+b+c;
        System.out.println(rs);

        byte b1 = 10;
        byte b2 = 80;
        int b3 = b1+b2;
        System.out.println(b3);
    }
}

强制类型转换

public class TypeDemo {
    public static void main(String[] args) {
     int a=20;
     byte b = (byte) a;//ALT+ENTER
        System.out.println(b);

        double d=99.5;
        int m=(int)d;
        System.out.println(m);
    }
}

九、运算符

算数运算符与连接符

public class TypeDemo {
    public static void main(String[] args) {
     int a=10;
     int b=2;
        System.out.println(a * b);
        int i=5;
        int j=2;
        System.out.println(1.0* i / j);

        //连接符
        int a2=5;
        System.out.println("abc" + a2);
        System.out.println(a2 + 'a');
    }
}

自增自减

public class TypeDemo {
    public static void main(String[] args) {
     int a=10;
     a++;
        System.out.println(a);

        --a;
        System.out.println(a);

        System.out.println("-------------------------------------");

        int i=10;
        int rs=++i;//先加后用
        System.out.println(i);
    }
}

赋值运算符

public class TypeDemo {
    public static void main(String[] args) {
        double a=9.5;
        double b=520;
        a += b;
        System.out.println(a);

        System.out.println("----------------------------------");
         byte x=10;
         byte y =30;
         x=(byte)(x+y);
        System.out.println(x);
        
    }
}

关系运算符

public class TypeDemo {
    public static void main(String[] args) {
     int a=10;
     int b=5;
     boolean rs =a>b;
        System.out.println(rs);

        System.out.println(a >= b);
        System.out.println(a==b);

    }
}

逻辑运算符

public class TypeDemo {
    public static void main(String[] args) {
        double size=9.8;
        int storage =16;
        boolean rs =size >= 6.95 & storage >=8;
        System.out.println(rs);

        System.out.println(true^false);
        System.out.println(false^false);

        int i=10;
        int j=20;
        System.out.println(i>100 && ++j >99);
        System.out.println(j);//左边为false右边不执行

        int m =10;
        int n=10;
        System.out.println(m>3 || ++n>40);
        System.out.println(n);//左边为true右边不执行

    }
}

三元运算符

public class TypeDemo {
    public static void main(String[] args) {
       double score=98.5;
       String rs=score >= 60 ? "成绩及格" : "成绩不及格";
        System.out.println(rs);

        int a =99;
        int b=67;
        int max=a>b ? a :b;
        System.out.println(max);
    }
}

十、流程结构

分支结构

if分支

public class TypeDemo {
    public static void main(String[] args) {
        double t = 38.9;
        if (t > 37) {
            System.out.println("leave");
        }

        double money = 99;
        if (money >= 99) {
            System.out.println("success");
        } else {
            System.out.println("faile");
        }

        int score = 78;
        if (score >= 0 && score < 68) {
            System.out.println("D");
        } else if (score >= 60 && score < 80) {
            System.out.println("C");
        } else if (score >= 80 && score < 70) {
            System.out.println("B");
        }else if (score >= 90 && score<100) {
            System.out.println("A");
        }else {
            System.out.println("no");
        }
    }
}

switch分支

public class TypeDemo {
    public static void main(String[] args) {
        String week ="Wen";
        switch (week){
            case "Mon":
                System.out.println("yi");
                break;
                case "Tue":
                System.out.println("er");
                break;
            case "Wen":
                System.out.println("san");
                break;
            case "Tun":
                System.out.println("si");
                break;
            case "Fri":
                System.out.println("wu");
                break;
            default:
                System.out.println("faile");
        }
    }
}

循环结构

for循环

public class TypeDemo {
    public static void main(String[] args) {
        for (int i=0;i<5;i++){
            System.out.println("Hello World");
        }
    }
}

while循环

public class TypeDemo {
    public static void main(String[] args) {
       int i=0;
       while(i<5){
           System.out.println("Hello World");
           i++;
       }
        }
    }

do—while循环

public class TypeDemo {
    public static void main(String[] args) {
        int i = 0;
        do {
            System.out.println("Hello World");
            i++;
        }while(i<3);

    }
}

循环嵌套

public class TypeDemo {
    public static void main(String[] args) {
        for (int i = 1 ;i <=3 ; i++) {
            for(int j=1;j<=5;j++){
                System.out.println("i love you");
            }
            System.out.println("…………");
        }
    }
}

random随机函数

package om.auc.type;

import java.util.Random;

public class TypeDemo {
    public static void main(String[] args) {
        Random r =new Random();
        for (int i=1;i<=10;i++) {//ctrl+alt+T
            int data=r.nextInt(10);
            System.out.println(data);
        }
    }
}

案例:猜数字游戏

package om.auc.type;

import java.util.Random;
import java.util.Scanner;

public class TypeDemo {
    public static void main(String[] args) {
        Random r =new Random();
        int luckNumber=r.nextInt(100)+1;

        Scanner sc=new Scanner(System.in);
        while(true){
            System.out.println("请输入您猜测的数据:");
            int guessNumber=sc.nextInt();

            if (guessNumber>luckNumber){
                System.out.println("您猜测的数字过大");
            } else if (guessNumber<luckNumber) {
                System.out.println("您猜测的数字过小");
            }else{
                System.out.println("恭喜您,猜测成功");
                break;
            }
        }
    }
}

 十一、  数组

静态数组

public class TypeDemo {
    public static void main(String[] args) {
        int[] ages=new int[]{12,24,36};
        double[] scores=new double[]{89,99.5,59.5};

        int[] age2={12,24,36};

        int ages3[]=new int[]{12,24,36};
    }
}

数组的访问

public class TypeDemo {
    public static void main(String[] args) {
        int[] arr={12,24,36};
        System.out.println(arr[0]);

        arr[0]=100;
        System.out.println(arr[0]);

        System.out.println(arr.length);//获取数组元素个数
        System.out.println(arr.length - 1);//最大索引

    }
}

遍历数组

public class TypeDemo {
    public static void main(String[] args) {
       int [] ages={12,24,36};
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]);
        }

    }
}

案例1:计算总销售额

public class TypeDemo {
    public static void main(String[] args) {
       int [] money={16,26,36,6,100};
       int sum=0;
        for (int i = 0; i < money.length; i++) {
            sum+=money[i];
        }
        System.out.println("销售总额:"+sum);

    }
}

动态初始化数组

public class TypeDemo {
    public static void main(String[] args) {
      int[] ages = new int[3];
      ages[0]=12;
      ages[1]=32;
      ages[2]=66;
        for (int i = 0; i < ages.length; i++) {
            System.out.println(ages[i]);
        }
        }
    }

案例2:录入分数并求出平均分

public class TypeDemo {
    public static void main(String[] args) {
        double[] scores=new double[6];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入当前第"+(i+1)+"个评委的分数:");
            double score=sc.nextDouble();
            scores[i]=score;
        }
        double sum=0;
        for (int i = 0; i < scores.length; i++) {
            sum+=scores[i];
        }
        System.out.println("选手最终得分是:"+ sum / scores.length);

    }
}

案例3:求最大值

public class TypeDemo {
    public static void main(String[] args) {
       int[] faceScores={15,9000,10000,20000,9500,-5};
       int max=faceScores[0];
        for (int i = 1; i < faceScores.length ; i++) {
            if(faceScores[i]>max){
                max=faceScores[i];
            }
        }
        System.out.println("最高分是:"+max);
    }
}

案例4:数组反转

public class TypeDemo {
    public static void main(String[] args) {
       int[] arr={10,20,30,40,50};
        for (int i = 0,j= arr.length-1; i <j ; i++,j--) {
            int temp=arr[j];
            arr[j]=arr[i];
            arr[i]=temp;
        }
       for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i] + " ");
        }
    }
}

案例5:随即排名

public class TypeDemo {
    public static void main(String[] args) {
        int[] codes=new int[5];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < codes.length; i++) {
            System.out.println("请输入当前第"+(i+1)+"个员工的工号:");
            int code=sc.nextInt();
            codes[i]=code;}
            Random r=new Random();
            for (int i = 0; i < codes.length; i++) {
                int index=r.nextInt(codes.length);
                int temp=codes[index];
                codes[index]=codes[i];
                codes[i]=temp;
            }
        for (int i = 0; i < codes.length; i++) {
            System.out.println(codes[i]+" ");
        }
    }
}

十二、方法

public class Demo2 {
    public static void main(String[] args) {

   printHelloWorld();
    }
    public  static void  printHelloWorld(){
        for (int i = 1; i <=3 ; i++) {
            System.out.println("HelloWorld");
        }
    }
}

案例6:求1-n的和

public class Demo2 {
    public static void main(String[] args) {
        int rs =add(100);
        System.out.println("1-100的和:"+rs);
    }
    public static  int add(int n){
        int sum=0;
        for (int i = 1; i <=n ; i++) {
            sum+=i;
        }
        return sum;
    }
}

基本类型的参数传递

public class Demo2 {
    public static void main(String[] args) {
        int a=10;
        change(a);
        System.out.println("main:" + a);
    }
    public static void  change(int a){
        System.out.println("change1:" + a);
        a=20;
        System.out.println("change2:" + a);
    }
}

引用类型的参数传递

public class Demo2 {
    public static void main(String[] args) {
    int[] arrs=new int[]{10,20,30};
    change(arrs);
        System.out.println("main:" + arrs[1]);
    }
    public  static void change(int[] arrs){
        System.out.println("方法内1:" + arrs[1]);
        arrs[1]=222;
        System.out.println("方法内2:" + arrs[1]);
    }
}

案例7:打印int类型的数组内容

public class Demo2 {
    public static void main(String[] args) {
        int[] arr={10,30,50,70};
        printArray(arr);
    }
    public  static  void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length ; i++) {
            if(i== arr.length-1){
                System.out.print(arr[i]);
            }else {
                System.out.print(arr[i]+",");
            }
        }
        System.out.print("]");
    }
}

案例8:比较两个int类型的数组是否一样,返回true或者false

public class Demo2 {
    public static void main(String[] args) {
        int[] arr1=null;
        int[] arr2=null;
        System.out.println(equals(arr1, arr2));
    }
    public static boolean equals(int[] arr1,int[] arr2 ) {
        if (arr1 == null && arr2 == null) {
            return true;
        }
        if(arr1==null || arr2==null){
            return false;
        }
        if(arr1.length != arr2.length){
            return false;
        }
        for (int i = 0; i < arr1.length; i++) {
            if(arr1[i] != arr2[i]){
                return false;
            }
        }
        return true;
    }
}

方法重载

public class Demo2 {
    public static void main(String[] args) {
     test();
     test(100);
        }
        public static void test(){
            System.out.println("=====test1====");
        }
        public static void test(int a){
            System.out.println("=====test2=====" + a);
        }
        int test(int a,int b){
        return a+b;
        }
}

案例9:买飞机票

public class Demo2 {
    public static void main(String[] args) {
        double price=calculate(1000,8,"经济舱");
        System.out.println("优惠价:" + price);
    }
    public static double calculate(double price,int month,String type){
        if(month>=5 && month<=10){
            switch (type){
                case "头等舱":
                    price *= 0.9;
                    break;
                case "经济舱":
                    price *=0.85;
                    break;
            }
        }else {
            switch (type){
                case "头等舱":
                    price *= 0.7;
                    break;
                case "经济舱":
                    price *=0.65;
                    break;
            }

        }
        return price;
    }
}

案例10:开发验证码

public class Demo2 {
    public static void main(String[] args) {
        System.out.println(createCode(5));
    }

    public static String createCode(int n) {
        Random r = new Random();
        String code = " ";
        for (int i = 0; i < n; i++) {
            int type = r.nextInt(3);
            switch (type) {
                case 0:
                    code += r.nextInt(10);
                    break;
                case 1:
                    char ch1 = (char) (r.nextInt(26) + 65);
                    code += ch1;
                    break;
                case 2:
                    char ch2 = (char) (r.nextInt(26) + 97);
                    code += ch2;
                    break;
            }
        }
        return code;
    }
}

案例11:评委打分

public class Demo2 {
    public static void main(String[] args) {
        System.out.println("当前选手的得分是:"+getAverageScore(6));

    }
    public static double getAverageScore(int number){
        int[] scores=new int[number];
        Scanner sc=new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            System.out.println(("请录入第"+(i+1)+"个评委的分数:"));
            int score=sc.nextInt();
            scores[i]=score;
        }
        int sum=0;
        int max=scores[0];
        int min=scores[0];
        for (int i = 0; i < scores.length; i++) {
            int score=scores[i];
            sum+=score;
            if(score>max){
                max=score;
            }
            if(score<min){
                min=score;
            }
        }
        return 1.0*(sum-min-max)/(number-2);
    }
}

案例12:数字加密

public class Demo2 {
    public static void main(String[] args) {
        System.out.println("加密后的结果是:"+encrpt(1983));

    }
    public static String encrpt(int number){
        int[] numbers=split(number);
        for (int i = 0; i < numbers.length; i++) {
            numbers[i]=(numbers[i]+5)%10;
        }
     reverse(numbers);
        String data="";
        for (int i = 0; i < numbers.length; i++) {
            data+=numbers[i];
        }
        return data;
    }

    private static void reverse(int[] numbers) {
        for (int i = 0,j=numbers.length-1; i <j ; i++,j--) {
            int temp=numbers[j];
            numbers[j]=numbers[i];
            numbers[i]=temp;
        }
    }

    public static int[] split(int number){
        int [] numbers=new int[4];
        numbers[0]=number/1000;
        numbers[1]=(number/100)%10;
        numbers[2]=(number/10)%10;
        numbers[3]=number%10;
        return numbers;
    }
}

案例13:数组拷贝

public class Demo2 {
    public static void main(String[] args) {
        int[] arr={11,12,33};
        int[] arr2=copy(arr);
        printArray(arr2);
    }
    public static void printArray(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1?arr[i]:arr[i]+ ",");
        }
        System.out.print("]");
    }
    public static int[] copy(int[] arr){
        int[] arr2=new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            arr2[i]=arr[i];
        }
        return arr2;
    }
}

案例14:抢红包

public class Demo2 {
    public static void main(String[] args) {
       int[] moneys={9,666,108,520,99999};
       start(moneys);
    }
    public static void  start(int[] moneys){
        Scanner sc=new Scanner(System.in);
        Random r=new Random();
        for (int i = 0; i <5 ; i++) {
            System.out.println("请您输入任意内容进行抽奖:");
            sc.next();
            while (true){
                int index=r.nextInt(moneys.length);
                int money=moneys[index];
                if(money!=0){
                    System.out.println("恭喜你,抽中了红包:"+money);
                    moneys[index]=0;
                    break;
                }
            }
        }
        System.out.println("活动结束");
    }
}

案例15:找素数

public class Demo2 {
    public static void main(String[] args) {
        System.out.println("当前的素数个数是:"+search(101, 200));
    }
    public static int search(int start,int end){
        int count=0;
        for (int i = start; i <end ; i++) {
            boolean flag=true;
            for (int j = 2; j <i/2 ; j++) {
                if(i%j==0){
                    flag=false;
                    break;
                }
            }
            if(flag){
                System.out.println(i);
                count++;
            }
        }
        return count;
    }
}

方法二:

public class Demo2 {
    public static void main(String[] args) {
        int count=0;
        OUT:
        for (int i = 101; i <200; i++) {
            boolean flag=true;
            for (int j = 2; j <i/2 ; j++) {
                if(i%j==0){
                    continue OUT;
                }
            }
            count++;
            System.out.println(i);

        }
        System.out.println("个数是:"+count);
    }

}

案例16:打印乘法表

public class Demo2 {
    public static void main(String[] args) {
        for (int i = 1; i <=9 ; i++) {
            for (int j = 1; j <=i ; j++) {
                System.out.print(j+"X"+i+"="+(j*i)+"\t");
            }
            System.out.println();
        }
    }

}

案例17:打印三角形

public class Demo2 {
    public static void main(String[] args) {
        int n = 4;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= (n -i); j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= (2 * i -1); j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

}

案例18:双色球

package com.auc;

import java.util.Random;
import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        int[] userSelectNumbers = userSelectNumber();
        System.out.println("您投注的号码:");
        printArray(userSelectNumbers);

        int[] luckNumbers = createLuckNumbers();
        System.out.println("中奖号码:");
        printArray(luckNumbers);

        judge(userSelectNumbers,luckNumbers);
    }

    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ",");
        }
        System.out.println("]");
    }

    public static int[] userSelectNumber() {
        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < numbers.length - 1; i++) {
            while (true) {
                System.out.println("请您输入第" + (i + 1) + "个红色号码(1-33之间不能重复):");
                int number = sc.nextInt();
                if (number < 1 || number > 33) {
                    System.out.println("对不起,您输入的红色号码不在1-33之间,请确认!");
                } else {
                    if (exist(numbers, number)) {
                        System.out.println("对不起,您输入的红球号码前面选择过滤,请确认!");
                    } else {
                        numbers[i] = number;
                        break;
                    }
                }
            }
        }
        while (true) {
            System.out.println("请您输入最后1个蓝球号码(1-16):");
            int number = sc.nextInt();
            if (number < 1 || number > 16) {
                System.out.println("对不起,您输入的蓝球号码范围不对!");
            } else {
                numbers[6] = number;
                break;
            }
        }
        return numbers;

    }

    private static boolean exist(int[] numbers, int number) {
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] == number) {
                return true;
            }
        }
        return false;
    }


    public static int[] createLuckNumbers() {
        int[] numbers = new int[7];
        Random r = new Random();
        for (int i = 0; i < numbers.length; i++) {
            while (true) {
                int number = r.nextInt(33) + 1;
                if (!exist(numbers, number)) {
                    numbers[i] = number;
                    break;

                }
            }
        }
        numbers[6] = r.nextInt(16) + 1;
        return numbers;
    }

    public static void judge(int[] userNumbers, int[] luckNumbers) {
        int redCount = 0;
        int blueCount = 0;

        for (int i = 0; i < userNumbers.length - 1; i++) {
            for (int i1 = 0; i1 < luckNumbers.length; i1++) {
                if (userNumbers[i] == luckNumbers[i1]) {
                    redCount++;
                    break;
                }
            }
        }

        blueCount = userNumbers[6] == luckNumbers[6] ? 1 : 0;
        System.out.println("您命中的红球数量是:" + redCount);
        System.out.println("您命中的蓝球数量是:" + blueCount);

        if (redCount == 6 && blueCount == 1) {
            System.out.println("恭喜你,中奖1000万");
        } else if (redCount == 6 && blueCount == 0) {
            System.out.println("恭喜你,中奖100万");
        } else if (redCount == 5 && blueCount == 1) {
            System.out.println("恭喜你,中奖10万");
        } else if (redCount == 5 && blueCount == 0 || redCount == 4 && blueCount == 1) {
            System.out.println("恭喜你,中奖1万");
        } else if (redCount == 4 && blueCount == 0 || redCount == 3 && blueCount == 1) {
            System.out.println("恭喜你,中奖1000");
        } else if (redCount < 3 && blueCount == 1) {
            System.out.println("恭喜你,中奖100");
        } else {
            System.out.println("感谢您对福利事业的贡献");
        }

    }
}

十三、面向对象的编程

package com.auc;

public class Student {
    String name;
    double chinese;
    double math;

    public void printTotalScore(){
        System.out.println(name+"的总成绩是:"+(chinese+math));
    }
    public void printAverageScore(){
        System.out.println(name+"的平均成绩是:"+(chinese+math)/2.0);
    }
}
package com.auc;

public class Test {
    public static void main(String[] args) {
        Student s1=new Student();
        s1.name="au";
        s1.math=100;
        s1.chinese=110;
        s1.printTotalScore();
        s1.printAverageScore();

    }
}

this

public class Student {
   public void printThis(){
       System.out.println(this);
   }

}
public class Test {
    public static void main(String[] args) {
        Student s1=new Student();
        System.out.println(s1);
        s1.printThis();
    }
}

this:用来解决对象的成员变量与方法内部变量的名称一样时,导致访问冲突问题的

构造器

public class Student {
   String name;
   double score;
   public Student(){
      System.out.println("无参数构造器被触发执行了");
   }
   public Student(String name,double score){
      System.out.println("有参数构造器被触发执行了");
      this.name=name;
      this.score=score;
   }

}
public class Test {
    public static void main(String[] args) {
        Student s=new Student();

        Student s2=new Student("au",90);
        System.out.println(s2.name);
        System.out.println(s2.score);
    }
}

封装

public class Student {
   private double score;

   public void setScore(double score){
      if ((score >= 0 && score <= 100)) {
         this.score=score;
      }else{
         System.out.println("数据非法");
      }
   }
   public double getScore(){
      return score;
   }
   public void printPass(){
      System.out.println(score>=60?"成绩及格":"成绩不及格");
   }
   }
public class Test {
    public static void main(String[] args) {
      Student s1=new Student();
      s1.setScore(99);
        System.out.println(s1.getScore());
    }
}

实体JavaBean

public class Student {
  private String name;
  private double score;

   public Student() {
   }

   public Student(String name, double score) {
      this.name = name;
      this.score = score;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public double getScore() {
      return score;
   }

   public void setScore(double score) {
      this.score = score;
   }
}
public class Test {
    public static void main(String[] args) {
    Student s1=new Student();
    s1.setName("au");
    s1.setScore(99);
        System.out.println(s1.getName());
        System.out.println(s1.getScore());
    }
}

案例19:模拟电影信息系统

package com.auc;

public class Student {
 private int id;
 private String name;
 private double price;
 private double score;
 private String director;
 private String actor;
 private String info;

   public Student(int i, String 水门桥, double v, double v1, String 徐克, String 吴京, String s) {
   }

   public Student(int id, double price, double score, String director, String actor, String info) {
      this.id = id;
      this.name= name;
      this.price = price;
      this.score = score;
      this.director = director;
      this.actor = actor;
      this.info = info;

   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public int getId() {
      return id;
   }

   public void setId(int id) {
      this.id = id;
   }

   public double getPrice() {
      return price;
   }

   public void setPrice(double price) {
      this.price = price;
   }

   public double getScore() {
      return score;
   }

   public void setScore(double score) {
      this.score = score;
   }

   public String getDirector() {
      return director;
   }

   public void setDirector(String director) {
      this.director = director;
   }

   public String getActor() {
      return actor;
   }

   public void setActor(String actor) {
      this.actor = actor;
   }

   public String getInfo() {
      return info;
   }

   public void setInfo(String info) {
      this.info = info;
   }
}
public class MovieOperator {
    private Student[] movies;
    public MovieOperator(Student[] movies){
        this.movies=movies;
    }
    public void printAllMovies(){
        System.out.println("-----------系统全部电影信息如下:----------");
        for (int i = 0; i < movies.length; i++) {
            Student m=movies[i];
            System.out.println("编号:" + m.getId());
            System.out.println("名称:" + m.getName());
            System.out.println("价格:" + m.getPrice());
            System.out.println("----------------------");
        }
    }
    public void searchMovieById(int id){
        for (int i = 0; i < movies.length; i++) {
            Student m = movies[i];
            if(m.getId()==id){
                System.out.println("该电影详情如下:");
                System.out.println("编号:" + m.getId());
                System.out.println("名称:" + m.getName());
                System.out.println("价格:" + m.getPrice());
                System.out.println("得分:" + m.getScore());
                System.out.println("导演:" + m.getDirector());
                System.out.println("主演:" + m.getActor());
                System.out.println("其他信息:" + m.getInfo());
                return;
            }

        }
        System.out.println("没有该电影信息");
    }
}
public class Test {
    public static void main(String[] args) {
        Student[] movies=new Student[4];
        movies[0]=new Student(1,"水门桥",38.9,9.4,"徐克","吴京","12万人想来看");
        movies[1]=new Student(2,"消失的他",48.9,9.8,"Ard","...","22万人想来看");
        movies[2]=new Student(3,"复仇者联盟",58.9,9.7,"Brg","**","32万人想来看");
        movies[3]=new Student(4,"阿凡达",46.9,9.6,"Cdf","^^^","42万人想来看");

        MovieOperator operator=new MovieOperator(movies);
        operator.printAllMovies();;
        operator.searchMovieById(1);


    }
}

十四、常用API

package com.ajc.pkg;
import itcast.Demo1;
import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Demo d=new Demo();
        d.print();

        Demo1 d2=new Demo1();
        d2.print();

        Scanner sc=new Scanner(System.in);
        Random r=new Random();
    }

}
package itcast;

public class Demo1 {
    public void print() {
        System.out.println("Hello World2");
    }
}
package com.ajc.pkg;

public class Demo {
    public void print(){
        System.out.println("Hello World");
    }
}

String

public class Demo {
    public static void main(String[] args) {
        String name="itauc";
        System.out.println(name);

        String rs1=new String();
        System.out.println(rs1);

        String rs2=new String("itauc");
        System.out.println(rs2);

        char[] chars={'a','u','c'};
        String rs3=new String(chars);
        System.out.println(rs3);

        byte[] bytes={97,98,99};
        String rs4=new String(bytes);
        System.out.println(rs4);
    }

}

操作字符串数据的常用方法

public class Demo {
    public static void main(String[] args) {
        String name="itauc";
        System.out.println(name.length());

        char c=name.charAt(1);
        System.out.println(c);

        for (int i = 0; i < name.length(); i++) {
            char ch=name.charAt(i);
            System.out.println(ch);
        }

        char[] chars=name.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }

        String s1=new String("au");
        String s2=new String("au");
        System.out.println(s1.equals(s2));

        String c1="34AeFg";
        String c2="34aEfG";
        System.out.println(c1.equals(c2));
        System.out.println(c1.equalsIgnoreCase(c2));

        String s3="i love you au";
        String rs=s3.substring(2,6);
        System.out.println(rs);

        String rs2=s3.substring(2);
        System.out.println(rs2);

        String info="fuck you!!";
        String rs3=info.replace("fuck","**");
        System.out.println(rs3);
    }

}

案例20:完成用户登录

public class StringTest4 {
    public static void main(String[] args) {
        for (int  i=0;i<3;i++) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入登录名称:");
            String loginName=sc.next();
            System.out.println("请输入登录密码:");
            String passWord=sc.next();

            boolean rs=login(loginName,passWord);
            if(rs){
                System.out.println("恭喜您,欢迎进入系统……");
                break;
            }else {
                System.out.println("登录名或者密码错误,请您确认……");
            }
        }
    }
    public static boolean login(String loginName,String passWord){
        String okLoginName="auc";
        String okPassWord="123456";

        if(okLoginName.equals(loginName)&& okPassWord.equals(passWord)){
            return true;
        }else {
            return false;
        }
    }

}

案例21:使用String来开发验证码

public class StringTest4 {
    public static void main(String[] args) {
        System.out.println(createCode(4));
        System.out.println(createCode(6));

    }
    public static String createCode(int n){
        String code="";
        String data="abcdefghijklmnopqrlstuvwxyABCDEFGHIJKLMNOPQRLSTUVWYXZz123456789";
        Random r=new Random();
        for (int i = 0; i <n ; i++) {
            int index=r.nextInt(data.length());
            code+=data.charAt(index);
        }
        return code;
    }

}

ArrayList

public class ArryListDemo1 {
    public static void main(String[] args){
        ArrayList<String> list=new ArrayList<String>();
        list.add("au");
        list.add("666");
        list.add("java");
        System.out.println(list);

        list.add(1,"MySQL");
        System.out.println(list);

        String rs=list.get(1);
        System.out.println(rs);

        System.out.println(list.size());

        System.out.println(list.remove(1));
        System.out.println(list);

        System.out.println(list.remove("au"));
        System.out.println(list);

        System.out.println(list.set(1, "auc"));
        System.out.println(list);
    }
}

案例22:找出某些数据并成功删除

public class ArryListDemo1 {
    public static void main(String[] args){
       ArrayList<String> list=new ArrayList<>();
       list.add("java入门");
        list.add("宁夏枸杞");
        list.add("黑枸杞");
        list.add("人字拖");
        list.add("特级枸杞");
        list.add("枸杞子");
        System.out.println(list);

        for (int i = 0; i < list.size(); i++) {
            String ele=list.get(i);
            if(ele.contains("枸杞")){
                list.remove(ele);
                i--;
            }
        }
        System.out.println(list);
    }
}

案例23:模仿外卖系统中的商家系统

package com.ajc.pkg.arrylist;

import java.util.ArrayList;
import java.util.List;

public class ArryListDemo1 {
    public static void main(String[] args){
      FoodOperator operator=new FoodOperator();
      operator.start();
    }
}
package com.ajc.pkg.arrylist;

import java.util.ArrayList;
import java.util.Scanner;

public class FoodOperator {
    private ArrayList<Food> foodList=new ArrayList<>();

    public void addFood(){
        Food f=new Food();
        Scanner sc=new Scanner(System.in);

        System.out.println("请输入该菜品名称:");
        String name=sc.next();
        f.setName(name);

        System.out.println("请输入该菜品价格:");
        double price=sc.nextDouble();
        f.setPrice(price);

        System.out.println("请输入该菜品描述:");
        String desc=sc.next();
        f.setDesc(desc);

        foodList.add(f);
        System.out.println("上架成功!");
    }
    public void showAllFoods(){
        if(foodList.size()==0){
            System.out.println("无菜品");
            return;
        }
        for (int i = 0; i < foodList.size(); i++) {
            Food f=foodList.get(i);
            System.out.println(f.getName());
            System.out.println(f.getPrice());
            System.out.println(f.getDesc());
            System.out.println("----------------------------------");
        }
    }
    public void start(){
        while (true) {
            System.out.println("请选择功能");
            System.out.println("1、上架菜品");
            System.out.println("2、展示菜品");
            System.out.println("3、退出");
            Scanner sc=new Scanner(System.in);
            System.out.println("请选择您的操作");
            String command=sc.next();
            switch (command){
                case "1":
                    addFood();
                    break;
                case "2":
                    showAllFoods();
                    break;
                case "3":
                    System.out.println("下次再来!");
                    return;
                default:
                    System.out.println("您输入的命令不存在!");
            }
        }
    }
}
package com.ajc.pkg.arrylist;

public class Food {
    private String name;
    private double price;
    private String desc;

    public Food() {
    }

    public Food(String name, double price, String desc) {
        this.name = name;
        this.price= price;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}

案例24:模拟ATM系统

package com.auc;

public class Test {
    public static void main(String[] args) {
        ATM atm=new ATM();

        atm.start();
    }
}
package com.auc;

public class Account {
    private String cardId;
    private String userName;
    private char sex;
    private String passWord;
    private double money;
    private double limit;

    public String getCardId() {
        return cardId;
    }

    public void setCardId(String cardId) {
        this.cardId = cardId;
    }

    public String getUserName() {
        return userName+(sex=='男'?"先生":"女士");
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getLimit() {
        return limit;
    }

    public void setLimit(double limit) {
        this.limit = limit;
    }
}
package com.auc;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class ATM {
    private ArrayList<Account> accounts = new ArrayList<>();
    private Scanner sc = new Scanner(System.in);
    private Account loginAcc;

    public void start() {
        while (true) {
            System.out.println("=======欢迎您进入到了ATM系统======");
            System.out.println("1、用户登录");
            System.out.println("2、用户开户");
            System.out.println("请选择:");
            int command = sc.nextInt();
            switch (command) {
                case 1:
                    login();
                    break;
                case 2:
                    createAccount();
                    break;
                default:
                    System.out.println("没有该操作");
            }
        }
    }

    private void login() {
        System.out.println("===系统登录===");
        if (accounts.size() == 0) {
            System.out.println("当前系统中无任何账户,请先开户再来登录~~");
            return;
        }

        while (true) {
            System.out.println("请您输入您的登录卡号:");
            String cardId = sc.next();

            Account acc = getAccountByCardId(cardId);
            if (acc == null) {
                System.out.println("您输入的登录卡号不存在,请确认~~");
            } else {
                while (true) {
                    System.out.println("请您输入登录密码:");
                    String passWord = sc.next();
                    if (acc.getPassWord().equals(passWord)) {
                        loginAcc = acc;
                        System.out.println("恭喜您:" + acc.getUserName() + "成功登录了系统,您的卡号是:" + acc.getCardId());
                        showUserCommand();
                        return;
                    } else {
                        System.out.println("您输入的密码不正确,请确认~~");
                    }
                }
            }


        }
    }

    private void showUserCommand() {
        while (true) {
            System.out.println(loginAcc.getUserName() + "您可以选择如下功能进行账户的处理===");
            System.out.println("1、查询账户");
            System.out.println("2、存款");
            System.out.println("3、取款");
            System.out.println("4、转账");
            System.out.println("5、密码修改");
            System.out.println("6、退出");
            System.out.println("7、注销当前账户");
            System.out.println("请选择:");
            int command = sc.nextInt();
            switch (command) {
                case 1:
                    showLoginAccount();
                    break;
                case 2:
                    deposiMoney();
                    break;
                case 3:
                    drawMoney();
                    break;
                case 4:
                    transferMoney();
                    break;
                case 5:
                    updatePassWord();
                    return;
                case 6:
                    System.out.println(loginAcc.getUserName() + "您退出系统成功!");
                    return;
                case 7:
                    if (deleteAccount()) {
                        return;
                    }
                    break;
                default:
                    System.out.println("您当前选择的操作是不存在的,请确认~~");
            }
        }
    }

    private void updatePassWord() {
        System.out.println("==账户密码修改操作==");
        while (true) {
            System.out.println("请您输入当前账户的密码:");
            String passWord=sc.next();
            if(loginAcc.getPassWord().equals(passWord)){
                while (true) {
                    System.out.println("请您输入新密码:");
                    String newPAssWord=sc.next();

                    System.out.println("请再次确认您的密码:");
                    String okPassWord=sc.next();
                    if(okPassWord.equals(newPAssWord)){
                        loginAcc.setPassWord((okPassWord));
                        System.out.println("恭喜您,您的密码修改成功!");
                        return;
                    }else {
                        System.out.println("您输入的2次密码不一致~~");
                    }
                }
            }else {
                System.out.println("您当前输入的密码不正确~~");
            }
        }
    }

    private boolean deleteAccount() {
        System.out.println("==进行销户操作==");
        System.out.println("请问您确认销户吗?y/n");
        String command = sc.next();
        switch (command) {
            case "y":
                if (loginAcc.getMoney() == 0) {
                    accounts.remove(loginAcc);
                    System.out.println("您好,您的账户已经成功销户~~");
                    return true;
                } else {
                    System.out.println("对不起,您的账户中存在金额,不允许销户~~");
                }
            default:
                System.out.println("好的,您的账户保留!");
                return false;
        }
    }


    private void transferMoney() {
        System.out.println("==用户转账==");
        if(accounts.size()<2){
            System.out.println("当前系统中只有你一个账户,无法为其他账户转账~~");
            return;
        }
        if(loginAcc.getMoney()==0){
            System.out.println("您自己都没钱,就别转了~~");
            return;
        }
        while (true) {
            System.out.println("请您输入对方的卡号:");
            String cardId=sc.next();

            Account acc=getAccountByCardId(cardId);
            if(acc==null){
                System.out.println("您输入的对方的卡号不存在~~");
            }else {
                String name="*"+acc.getUserName().substring(1);
                System.out.println("请您输入【"+name+"】的姓氏:");
                String preName=sc.next();
                if(acc.getUserName().startsWith(preName)){
                    while (true) {
                        System.out.println("请您输入转账给对方的金额:");
                        double money=sc.nextDouble();
                        if(loginAcc.getMoney()>=money){
                            loginAcc.setMoney((loginAcc.getMoney())-money);
                            acc.setMoney(acc.getMoney()+money);
                            return;

                        }else {
                            System.out.println("您金额不足,无法给对方转这么多钱,最多可转:"+loginAcc.getMoney());
                        }
                    }
                }else {
                    System.out.println("对不起,您输入的姓氏错误~~");
                }
            }
        }
    }

    private void drawMoney() {
        System.out.println("==取钱操作==");
        if(loginAcc.getMoney()<100){
            System.out.println("您的账户余额不足100元,不允许取钱~~");
            return;
        }
        while (true) {
            System.out.println("请您输入取款金额:");
            double money=sc.nextDouble();

            if(loginAcc.getMoney()>=money){
                if(money>loginAcc.getLimit()){
                    System.out.println("您当前取款金额超过了每次限额,您每次最多可取:"+loginAcc.getLimit());
                }else {
                    loginAcc.setMoney(loginAcc.getMoney()-money);
                    System.out.println("您取款:"+money+"成功,取款后您剩余:"+loginAcc.getMoney());
                    break;
                }
            }else {
                System.out.println("余额不足,您的账户中的余额是:"+loginAcc.getMoney());
            }
        }
    }

    private void deposiMoney() {
        System.out.println("==存钱操作==");
        System.out.println("请您输入存款金额:");
        double money = sc.nextDouble();
        loginAcc.setMoney(loginAcc.getMoney()+money);
        System.out.println("恭喜您,您存钱:"+money+"成功,存款后余额是:"+loginAcc.getMoney());
    }

    private void showLoginAccount(){
        System.out.println("==当前您的账户信息如下==");
        System.out.println("卡号"+loginAcc.getCardId());
        System.out.println("户主:"+loginAcc.getUserName());
        System.out.println("性别:"+loginAcc.getSex());
        System.out.println("余额:"+loginAcc.getMoney());
        System.out.println("每次取现额度:"+loginAcc.getLimit());
    }

    private void createAccount() {
        System.out.println("===系统开户操作===");
        Account acc = new Account();

        System.out.println("请您输入您的账户名称:");
        String name = sc.next();
        acc.setUserName(name);

        while (true) {
            System.out.println("请输入您的性别:");
            char sex = sc.next().charAt(0);
            if (sex == '男' || sex == '女') {
                acc.setSex(sex);
                break;
            } else {
                System.out.println("您输入的性别有误~只能是男或着女~");
            }
        }
        while (true) {
            System.out.println("请您输入您的账户密码:");
            String passWord = sc.next();
            System.out.println("请您输入您的确认密码:");
            String okPassWord = sc.next();
            if (okPassWord.equals(passWord)) {
                acc.setPassWord(okPassWord);
                break;
            } else {
                System.out.println("您输入的2次密码不一致,请您确认~~");
            }
        }
        System.out.println("请您输入您的取现额度:");
        double limit = sc.nextDouble();
        acc.setLimit((limit));

        String newCardId=creatCardId();
        acc.setCardId(newCardId);

        accounts.add(acc);
        System.out.println("恭喜您," + acc.getUserName() + "开户成功,您的卡号是:"+acc.getCardId());

    }

    private String creatCardId() {
        while (true) {
            String cardId = "";
            Random r = new Random();
            for (int i = 0; i < 8; i++) {
                int data = r.nextInt(10);
                cardId += data;
            }
            Account acc = getAccountByCardId(cardId);
            if (acc == null) {
                return cardId;
            }
        }
    }


    private Account getAccountByCardId(String cardId){
        for (int i = 0; i < accounts.size(); i++) {
            Account acc=accounts.get(i);
            if(acc.getCardId().equals(cardId)){
                return acc;
            }
        }
        return null;
    }
}

十五、static

public class Test {
    public static void main(String[] args) {
        Student.name="au";
        Student s1=new Student();
        s1.name="猪猪侠";
        System.out.println(s1.name);
        System.out.println(Student.name);

        Student s2=new Student();
        s1.age=23;
        s2.age=18;
        System.out.println(s1.age);
        

    }
}
public class Student {
    static String name;
    int age;
}

类变量应用场景

public class Student {
    public static int number;
    public Student(){
        Student.number++;
    }
}
public class Test {
    public static void main(String[] args) {
        Student s1=new Student();
        Student s2=new Student();
        Student s3=new Student();
        Student s4=new Student();
        System.out.println(Student.number);

    }
}

static修饰成员变量的方法

public class Student {
    double score;
  public static void printHelloWorld(){
      System.out.println("HelloWorld");
  }
    public void printPass(){
        System.out.println("成绩:"+
                (score>=60?"及格":"不及格"));
    }
}
public class Test {
    public static void main(String[] args) {
       Student.printHelloWorld();

       Student s=new Student();
       s.printPass();

    }
}

static代码块

public class Student {
    static int number=80;
    static String schoolName;
    static {
        System.out.println("静态代码块执行力~~");
        schoolName="au";
    }
    {
        System.out.println("实例代码块执行力~~");
    }
    public Student(){
        System.out.println("无参数构造器执行力~~");
    }
    public Student(String name){
        System.out.println("与参数构造器执行力~~");
    }
}
public class Test {
    public static void main(String[] args) {
        System.out.println(Student.number);
        System.out.println(Student.number);
        System.out.println(Student.schoolName);

        System.out.println("-------------------------------");
        Student s1=new Student();
        Student s2=new Student("auc");
    }
}

static单例设计模式

public class Student {
    private static Student a=new Student();
   private Student(){

   }
   public static Student getObject(){
       return a;
   }
}
public class Test {
    public static void main(String[] args) {
        Student a1=Student.getObject();
        Student a2=Student.getObject();
        System.out.println(a1);
        System.out.println(a2);
    }
}

懒汉式单例设计模式

package com.gaodemo;

import java.nio.file.attribute.UserPrincipal;

public class Student {
    private static Student b;
   private Student(){

   }
   public static Student getInstance(){
       if(b==null){
           b=new Student();
       }
       return b;
   }
}
public class Test {
    public static void main(String[] args) {
      Student b1=Student.getInstance();
      Student b2=Student.getInstance();
        System.out.println(b1==b2);
    }
}

十六、继承

public class Test {
    public static void main(String[] args) {
     B b=new B();
        System.out.println(b.i);

        b.print1();
    }
}
public class A {
    public int i;
    public void print1(){
        System.out.println("===print1===");
    }
    private int j;
    private void print2(){
        System.out.println("===print2===");
    }
}
public class B extends A{
    public void print3(){
        System.out.println(i);
        print1();
    }
}

继承的好处

public class Test {
    public static void main(String[] args) {
    B t=new B();
    t.setName("au");
    t.setSkill("javsSpring");
        System.out.println(t.getName());
        System.out.println(t.getSkill());
        t.printInfo();
    }
}
public class A {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class B extends A{
   private String skill;

    public String getSkill() {
        return skill;
    }

    public void setSkill(String skill) {
        this.skill = skill;
    }
    public void printInfo(){
        System.out.println(getName()+"具备的技能:"+skill);
    }
}

单继承

public class Test {
    public static void main(String[] args) {

    }
}
class A{}
class B{}
class D extends B{}

Object

public class Test {
    public static void main(String[] args) {
        A a=new A();
        B b=new B();

    }
}
class A{}
class B{}
class D extends B{}

方法重写

public class Test {
    public static void main(String[] args) {
    B b=new B();
    b.print1();
    b.print2(2,3);

    }
}
public class A {
    public void print1(){
        System.out.println("111");
    }
    public void print2(int a,int b){
        System.out.println("1111111");
    }
}
public class B extends A{
    public void print1(){
        System.out.println("666");
    }
@Override
    public void print2(int a,int b){
        System.out.println("66666");
    }
}

子类中访问其他成员的特点

public class Test {
    public static void main(String[] args) {
   B b=new B();
   b.showNamw();
   b.showMethod();
    }
}
public class A {
    String name="父类名字";
    public void print1(){
        System.out.println("==父类的print1方法执行==");
    }

}
public class B extends A{
    String name="子类名称";
   public void showNamw(){
       String name="局部名称";
       System.out.println(name);
       System.out.println(this.name);
       System.out.println(super.name);
   }
   @Override
   public void print1(){
       System.out.println("==子类的print1方法执行了==");
   }
   public void showMethod(){
       print1();
       super.print1();
   }
}

子类构造器的特点

class F{
    public F(){
        System.out.println("===父类F的 无参数构造器 执行力===");
    }
}
class Z extends F {
    public Z() {
        System.out.println("===子类F的 无参数构造器 执行力===");
    }

    public Z(String name) {
        System.out.println("===子类F的 有参数构造器 执行力===");
    }

    public static class Test {
        public static void main(String[] args) {
            Z z = new Z();
            Z z2 = new Z("au");
        }
    }
}

子类构造器调用父类构造器的应用场景

public class Test2 {
    public static void main(String[] args){
        Teacher t=new Teacher("au",31,"Java");
        System.out.println(t.getName());
        System.out.println(t.getAge());
        System.out.println(t.getSkill());

    }
}
class Teacher extends People{
    private String skill;
    public Teacher(String name,int age,String skill){
        super(name,age);
        this.skill=skill;
    }

    public String getSkill() {
        return skill;
    }

    public void setSkill(String skill) {
        this.skill = skill;
    }
}
class People{
    private String name;
    private int age;

    public People() {
    }

    public People(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

猜你喜欢

转载自blog.csdn.net/m0_74016429/article/details/132382942
今日推荐