日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA基础学习大全(笔记)

發(fā)布時間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA基础学习大全(笔记) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JAVASE和JAVAEE的區(qū)別

JDK的安裝路徑

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-perPRPgq-1608641067105)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222001641906.png)]

卸載和安裝JDK

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SYnXvbAn-1608641067107)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222001805046.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4KQ1Ie9x-1608641067110)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222002723760.png)]

第一個hello,word程序

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-B7ZO5eF5-1608641067111)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222094909864.png)]

Ctrl 加insert復制

shift加insert粘貼

public class hello{public static void main(String[] args){System.out.print("Hello,World!");} }

JAVA的運行機制

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-3sucdYRf-1608641067112)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222095842464.png)]

標識符注意點

  • 所有的標識符都應該以字母(A-Z 或者a-z) ,美元符($)、或者下劃線( )開始
  • 首字符之后可以是字母(A-Z 或者a-z) ,美元符($) 、下劃線(或數(shù)字的任何字符組合
  • 不能使用關鍵字作為變量名或方法名。
  • 標識符是大小寫敏感的
  • 可以使用中文命名,但是一般不建議這樣去使用,也不建議使用拼音,很Low
  • 什么是字節(jié)

  • 位(bit) :是計算機內部數(shù)據儲存的最小單位,11001100是一 個八位二進制數(shù)。
  • 字節(jié)(byte) :是計算機中數(shù)據處理的基本單位,習慣上用大寫B(tài)來表示,
  • 1B (byte,字節(jié)) = 8bit (位)
  • 字符:是指計算機中使用的字母、數(shù)字、字和符號
  • 數(shù)據類型

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Gxmcm4g7-1608641067113)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222110344066.png)]

    boolean不能進行數(shù)據轉換其他數(shù)據類型為字節(jié)單位,boolean是以位為單位

    浮點數(shù)拓展

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IVccue9F-1608641067114)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222110613641.png)]

    銀行中的應用

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-y7lZwlrj-1608641067115)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222110859787.png)]

    類型轉換

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-fPdSKPrJ-1608641067116)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222111856239.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kMPPYrXB-1608641067117)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222112123644.png)]

    低-------------------------------> 高 byte, short,char-> int -> long-> float -> double

    String不是基本的數(shù)據類型

    變量和常量

    變量

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-o7i20k9e-1608641067118)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222112937451.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cdZh5cIA-1608641067119)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222113352348.png)]

    變量的命名規(guī)范

  • 所有變量、方法、類名:見名知義
  • 類成員變量:首字母小寫和駝峰原則: monthSalary
  • 局部變量:首字母小寫和駝峰原則
  • 常量:大寫字母和下劃線: MAX_ VALUE
  • 類名:首字母大寫和駝峰原則: Man, GoodMan
  • 方法名:首字母小寫和駝峰原則: run(), runRun()
  • 位運算

    位運算符<<、>>效率極快

    字符串連接符+

    System . out .println("" +a+b);//""先和a拼接,在和b拼接,a+b不進行算術運算 System . out. println(a+b+"");//a+b先進行算術運算,在和""拼接

    包機制

  • 為了更好地組織類,Java 提供了包機制,用于區(qū)別類名的命名空間。

  • 包語句的語法格式為:

    package pkg1[. pkg2[. pk...]];
  • 一般利用公司域名倒置作為包名;com.wdl.base

  • 為了能夠使用某一個包的成員,我們需要在Java程序中明確導入該包。使用"import"語句可 完成此功能

    import package1[. package..].(classname |*);
  • Java Doc生成自己的幫助文檔

  • javadoc命令是用來生成自己API文檔的
  • 參數(shù)信息
    • @author作者名
    • @version 版本號
    • @since 指明需要最早使用的jdk版本
    • @param參數(shù)名
    • @return 返回值情況
    • @throws 異常拋出情況
  • 用IDEA構建javadoc
  • https://www.cnblogs.com/noKing/p/8006298.html

    用戶交互Scanner(獲取用戶的輸入)

    next()和hasNext()

    public class Demo02_Scanner {public static void main(String[] args) {//創(chuàng)建一個掃描器對象,用于接收鍵盤數(shù)據Scanner scanner = new Scanner(System.in);System.out.println("使用next方式接收: ");//判斷用戶有沒有輸入字符串if (scanner.hasNext()){//使用next方式接收String str = scanner.next();//程序會等待輸入內容,不輸入會卡在這里System.out.println("輸出的內容為: "+str);}//凡是屬于IO流的類如果不關閉會一直占用資源.要養(yǎng)成好習慣用完就關掉scanner.close();} }

    nextLine()和hasNextLine()

    public class Demo02_Scanner {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("使用nextLine方式接收: ");//判斷是否還有輸入if (scanner.hasNextLine()) {String str = scanner.nextLine();System.out.println("輸出的內容為: " + str);}scanner.close();} }

    next()和nextline()的區(qū)別

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cKFAhLJ3-1608641067120)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222132536621.png)]

    switch語句

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CphiOLXQ-1608641067121)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222134426179.png)]

    do-while(注意while后面的分號)

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mE7rVfxJ-1608641067121)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222142429380.png)]

    break和continue的區(qū)別

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BlbOruhX-1608641067122)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222144458031.png)]

    三角形的打印

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xhP1Pbis-1608641067123)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222145112027.png)]

    方法的重載

  • 重載就是在一個類中,有相同的函數(shù)名稱,但形參不同的函數(shù)。

  • 方法的重載的規(guī)則:

    • 方法名稱必須相同。
    • 參數(shù)列表必須不同(個數(shù)不同、或類型不同、參數(shù)排列順序不同等)。(必須滿足)
    • 方法的返回類型可以相同也可以不相同。
    • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AhDtFw7k-1608641067123)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222150754110.png)]
    • 僅僅返回類型不同不足以成為方法的重載。
  • 實現(xiàn)理論:

    方法名稱相同時,編譯器會根據調用方法的參數(shù)個數(shù)、參數(shù)類型等去逐個匹配,以選擇對應的方法,如果匹配失敗,則編譯器報錯。

  • 命令行傳參

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-dZtREBGc-1608641067124)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222151531483.png)]

    可變參數(shù)(本質是數(shù)組)

  • JDK 1.5開始,Java支持傳遞同類型的可變參數(shù)(不定項)給一個方法。
  • 在方法聲明中,在指定參數(shù)類型后加一個省略號(…)。
  • 一個方法中只能指定一個可變參數(shù),它必須是方法的最后一個參數(shù)。任何普通的參數(shù)必須在它之前聲明。
  • public class Demo08 {public static void main(String args[]) {//調用可變參數(shù)的方法printMax(15,22.0,36,25.3);printMax(new double[]{1, 2, 3});//本質為數(shù)組}public static void printMax(double... numbers) {if (numbers.length == 0) {System.out.println("No argument passed");return;}double result = numbers[0];//排序!for (int i = 1; i < numbers.length; i++) {if (numbers[i] > result) {result = numbers[i];}}System.out.println("The max value is " + result);} }

    遞歸的原理

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EpiDBUHQ-1608641067125)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222152846380.png)]

    簡易計算器

    package com.kuang.scanner; import java.util.Scanner; public class hello {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.print("請輸入第一個數(shù)字:");int num1 = s.nextInt();System.out.print("請輸入運算符:");String operator = s.next();System.out.print("請輸入第二個數(shù)字:");int num2 = s.nextInt();int result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;case "%":result = num1 % num2;break;default:System.out.println("你的輸入不合法!!!");}System.out.println(num1 + operator + num2 + "=" + result);} }

    數(shù)組

  • 首先必須聲明數(shù)組變量,才能在程序中使用數(shù)組。下面是聲明數(shù)組變量的語法:

    dataType[] arrayRefVar; // 首選的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首選方法
  • Java語言使用new操作符來創(chuàng)建數(shù)組,語法如下:(前后數(shù)據類型必須一致)

    dataType[] arrayRefVar = new dataType[arraySize] ;
  • 數(shù)組的元素是通過索引訪問的,數(shù)組索引從0開始。

  • 二維數(shù)組的輸出

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-RFkyoqjQ-1608641067126)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222164548450.png)]

    內存分析—三種初始化

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8pA8ijqW-1608641067127)(D:\image-20201222155715184.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-98hEQl4e-1608641067128)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222155834796.png)]

    冒泡排序(小升級)

    package com.kuang.scanner; import java.util.Arrays; public class hello {public static void main(String[] args) {int[] a = {1, 4, 5, 6, 72, 2, 2, 2, 25, 6, 7};int[] sort = sort(a); //調用完我們自己寫的排序方法以后,返回一個排序后的數(shù)組System.out.println(Arrays.toString(sort));}public static int[] sort(int[] array) {//臨時變量int temp = 0;//外層循環(huán),判斷我們這個要走多少次;for (int i = 0; i < array.length - 1; i++) {Boolean flag = false;//內層循環(huán),比價判斷兩個數(shù),如果第一個數(shù),比第二個數(shù)大,則交換位置(相鄰兩個數(shù)之間的比較)for (int j = 0; j < array.length - 1 - i; j++) {if (array[j + 1] > array[j]) {temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;flag = true;}}if (flag == false){break;}}return array;} }

    稀疏數(shù)組(數(shù)組壓縮)

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8XN55TQL-1608641067128)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222165501101.png)]

    package com.kuang.scanner;public class hello {public static void main(String[] args) {//創(chuàng)建一個元素的二維數(shù)組 11*11 0:沒有棋子 1: 黑棋 2: 白棋int chessArry1[][] = new int[11][11];chessArry1[1][2] = 1;chessArry1[2][3] = 2;for (int [] row : chessArry1) {for ( int data : row) {System.out.printf("%d\t", data);}System.out.println();}int[][] paraseArr = transformSparseArr(chessArry1);transformArry(paraseArr);}//二維數(shù)組 轉 稀疏數(shù)組public static int[][] transformSparseArr( int[][] arry) {int sum =0; // 有效值的個數(shù)int rowSize = 0;//1、計算出有效的個數(shù)for (int[] row :arry) {for ( int data :row) {rowSize = row.length;if (data != 0) {sum++;}}}//創(chuàng)建稀疏數(shù)組 并給稀疏數(shù)組賦值int [][] sparseArr= new int[sum+1][3];sparseArr [0][0] = arry.length;sparseArr [0][1] = rowSize;sparseArr [0][2] = sum;//count 計數(shù)器 計算放入的有效個數(shù) 即第幾個非零數(shù)據int count = 0;for (int i = 0; i < arry.length; i++) {for (int j = 0; j < rowSize ; j++) {if (arry[i][j] != 0) {count++;sparseArr[count][0] = i;sparseArr[count][1] = j;sparseArr[count][2] = arry[i][j];}}}// 輸出稀疏數(shù)組形式System.out.println("===========稀疏數(shù)組============");for (int i = 0; i < sparseArr.length; i++) {// %d 占位符 \t 制表符 \n 換行System.out.printf("%d\t%d\t%d\t\n", sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);}System.out.println();return sparseArr;}// 稀疏數(shù)組 轉化為 二維數(shù)組public static int[][] transformArry(int[][] parseArr) {int row = parseArr[0][0]; //得到行int col = parseArr[0][1]; //得到列//數(shù)組恢復 并賦值int[][] arry = new int[row][col];for (int i = 1 ; i < parseArr.length; i++) {arry[parseArr[i][0]][parseArr[i][1]] = parseArr[i][2];}// 輸出System.out.println("============二維數(shù)組恢復==============");for (int [] rows: arry) {for (int data : rows) {System.out.printf("%d\t", data);}System.out.println();}return arry;} }

    面向對象

    面向對象編程的本質就是:以類的方式組織代碼,以對象的組織(封裝)數(shù)據

    三大特性:

    • 封裝
    • 繼承
    • 多態(tài)

    方法調用

    靜態(tài)方法

    可以通過類直接調用,在類加載時加載,不能調用非靜態(tài)方法

    public class Demo01Static {public static void main(String[] args) {Student.say();} }public class Student {public static void say(){System.out.println("學生說話了");} }

    非靜態(tài)方法

    通過實例化對象調用

    public class Demo01Static {public static void main(String[] args) {Student student = new Student();student.say();} }public class Student {public void say(){System.out.println("學生說話了");} }

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0UWi3Mdr-1608641067129)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222184401007.png)]

    自動生成返回值

    按快捷鍵ctrl+alt+v

    構造器

    • 類中的構造器也稱為構造方法,是在進行創(chuàng)建對象的時候必須要調用的。并且構造器有以下倆個特點:

      • 必須和類的名字相同
      • 必須沒有返回類型,也不能寫void
    • 構造器必須要掌握

      public class Person {//一個類即使什么都不寫,它也會存在個方法//顯示的定義構造器String name ;int age;//alt+ insert 可以快捷生成構造器//1.使new關鍵字, 本質是在調用構造器//2.用例初始化值public Person(){ }//有參構造:一旦定義 了有參構造。無參就必須顯示定義,否則調用無參構造器時程序會報錯public Person(String name){this.name = name ;}public Person(String name, int age) {this. name = name;this.age = age;} }
      • 構造器:

        • 和類名相同
        • 沒有返回值
      • 作用:

        • new本質在調用構造方法
        • 初始化對象的值
      • 注意點:

        定義有參構造之后,如果想使用無參構造,顯示的定義一個無參的構造

    Alt加insert

    默認生成有參,select none生成無參

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-2Fb1eqig-1608641067130)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222183536201.png)]

    創(chuàng)建對象內存分析

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XqzJnKlN-1608641067131)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222184200492.png)]

    封裝

    屬性私有,get/set

    可以提高安全性

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GrVBgpI4-1608641067132)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222185047275.png)]

    繼承

  • extands的意思是“擴展”。子類是父類的擴展。
  • JAVA中類只有單繼承,沒有多繼承!
  • 被final修飾的類不能被繼承。
  • object類

    java中的所有類都直接或間接繼承Object類

    Ctrl加H

    可以查看當前類的繼承樹

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-bpOTtWOC-1608641067133)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222185819780.png)]

    super

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YMs7rmIH-1608641067134)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222190340430.png)]

    可以省略

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ibzw3KLw-1608641067134)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222190857594.png)]

    • super注意點:
      • super調用 父類的構造方法,必須在構造方法的第一個
      • super 必須只能出現(xiàn)在子類的方法或者構造方法中!
      • super和 this 不能同時調用構造方法!
    • Vs this:
      • 代表的對象不同: this 本身調用者這個對象 super:代表父類對象的應用
      • 前提 this:沒有繼承也可以使用 super:只能在繼承條件才可以使用
      • 構造方法 this() ; 本類的構造 super():父類的構造!

    方法重寫

    父類靜態(tài)方法

    public class Demo04_A extends Demo04_B{public static void test(){System.out.println("A==>test()");} } //重寫都是方法的重寫,和屬性無關 public class Demo04_B {public static void test(){System.out.println("B==>test()");} } public class Applications {public static void main(String[] args) {//Demo04//方法的調用只和左邊,定義的數(shù)據類型有關Demo04_A a = new Demo04_A();a.test();//A==>test()//父類引用指向引用Demo04_B b = new Demo04_A();b.test();//B==>test()} }

    父類非靜態(tài)方法

    public class Applications {public static void main(String[] args) {//Demo04/*靜態(tài)方法和非靜態(tài)方法區(qū)別很大靜態(tài)方法:方法的調用只和左邊,定義的數(shù)據類型有關非靜態(tài)方法:重寫,父類方法只能是public*/Demo04_A a = new Demo04_A();a.test();//A==>test()//父類引用指向引用Demo04_B b = new Demo04_A();//子類重寫了父類的方法b.test();//A==>test()} } //重寫都是方法的重寫,和屬性無關 public class Demo04_B {public void test(){System.out.println("B==>test()");} } public class Demo04_A extends Demo04_B{@Overridepublic void test() {System.out.println("A==>test()");} }

    重寫:需要有繼承關系,子類重寫父類的方法!

    • 方法名必須相同
    • 參數(shù)列表列表必須相同
    • 修飾符:范圍可以擴大但不能縮小:public>Protected >Default>private
    • 拋出的異常:范圍,可以被縮小,但不能擴大: ClassNotFoundException --> Exception(大)
    • 重寫,子類的方法和父類必要一 致;方法體不同!

    多態(tài)

  • 即同一方法可以根據發(fā)送對象的不同而采用多種不同的行為方式。
  • 一個對象的實際類型是確定的,但可以指向對象的引用的類型有很多
  • 多態(tài)存在的條件
    • 有繼承關系
    • 子類重寫父類方法
    • 父類引用指向子類對象
    • 注意:多態(tài)是方法的多態(tài),屬性沒有多態(tài)性。
  • [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-v7cw29Ei-1608641067135)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222193111508.png)]

    public class Person {public void run(){System.out.println("Person==>run()");} } public class Student extends Person{@Overridepublic void run() {System.out.println("Student==>run()");}public void stop(){System.out.println("Student==>stop()");} } public class Applications {public static void main(String[] args) {// 一個對象的實際類型是確定的:new Student();new Person();//可 以指向的引用類型就不確定了:父類的引用指向子類//Student 能調用的方法都是自己的或者繼承父類的!Student s1 = new Student();//Person 父類型,可以指向子類,但是不能調用子類獨有的方法Person s2 = new Student();Object s3 = new Student();//對象能執(zhí)行哪些方法,主要看對象左邊的類型,和右邊關系不大!s2.run(); //子類重寫了父類的方法。執(zhí)行子類的方法 Student==>run()s1.run();//Student==>run()s1.stop();//Student==>stop()Person p1 = new Person();p1.run();//Person==>run()} }

    多態(tài)注意事項:

    • 多態(tài)是方法的多態(tài),屬性沒有多態(tài)
    • 父類和子類,有聯(lián)系 類型轉換異常! ClassCastException!
    • 存在條件: 繼承關系,方法需要重寫,父類引用指向于類對象! Father f1 = new Son();
    • 不能進行多態(tài)的方法:
      • static 方法,屬于類,它不屬于實例
      • final常量;
      • private 方法;|

    父子類強轉

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XUuDcV9Z-1608641067136)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222194544016.png)]

    • 父類轉子類
    public class Application {public static void main(String[] args) {//類型之間的轉化:父子//高 低Person obj = new Student();//student將這個對象轉換為Student類型,我們就可以使student類型的方法了!((Student) obj).go();} }
    • 子類轉父類

      public class Application {public static void main(String[] args) {//類型之間的轉化:父 子//子類轉換為父類,可能丟失自己的本來的一些方法!Student student = new Student();student.go();Person person = student;} }

    instanceof

    (類型轉換)引用類型, 判斷一個對象是什么類型~

    public class Applications {public static void main(String[] args) {Object object = new Student();//System. out . println(X instanceof Y);//能不能編譯通過! X,Y之間要存在父子關系//System. out . println(X instanceof Y);// X是Y之的子類,trueSystem.out.println(object instanceof Student); //trueSystem.out.println(object instanceof Person); //trueSystem.out.println(object instanceof Object); //trueSystem.out.println(object instanceof Teacher); //FalseSystem.out.println(object instanceof String); //FalseSystem.out.println("===========================");Person person = new Student();System.out.println(person instanceof Student); //trueSystem.out.println(person instanceof Person); //trueSystem.out.println(person instanceof Object); //trueSystem.out.println(person instanceof Teacher); //False//System.out.println(person instanceof String); //不能通過編譯System.out.println("===========================");Student student = new Student();System.out.println(student instanceof Student); //trueSystem.out.println(student instanceof Person); //trueSystem.out.println(student instanceof Object); //true//System.out.println(student instanceof Teacher); //不能通過編譯//System.out.println(student instanceof String); //不能通過編譯} }

    static

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-0W7YHhFH-1608641067136)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222195218953.png)]

    靜態(tài)導入包

    import static java.lang.Math.random; import static java.lang.Math.PI; public class He {public static void main(String[] args) {System.out.println(random());System.out.println(PI);} }

    抽象類

  • abstract修飾符可以用來修飾方法也可以修飾類,如果修飾方法,那么該方法就是抽象方;如果修飾類,那么該類就是抽象類。
  • 抽象類中可以沒有抽象方法,但是有抽象方法的類一定要聲明為抽象類。
  • 抽象類,不能使用new關鍵字來創(chuàng)建對象, 它是用來讓子類繼承的。
  • 抽象方法,只有方法的聲明,沒有方法的實現(xiàn),它是用來讓子類實現(xiàn)的。
  • 子類繼承抽象類,那么就必須要實現(xiàn)抽象類沒有實現(xiàn)的抽象方法, 否則該子類也要聲明為抽象類。
  • 接口

  • 方法public abstract 按口中的所有定義的方法其實都是抽象的public abstract
  • 常量public static final 常量~ pubsic static final,一般不在接口中定義常量
  • 接口不能被實例化,接口中沒有構造方法
  • implements 可以實現(xiàn)多個接口
  • 必須要重寫接口中的方法~
  • 異常

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-elmxMHA3-1608641067137)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222202516006.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yX2Pyjwq-1608641067138)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222202615165.png)]

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-cW9WQllf-1608641067140)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222203450684.png)]

    Ctrl加Alt加T

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-DEIT6TuG-1608641067141)(C:\Users\王東梁\AppData\Roaming\Typora\typora-user-images\image-20201222203136221.png)]

    總結

    以上是生活随笔為你收集整理的JAVA基础学习大全(笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。