(一)Java熱身
阿新 • • 發佈:2020-07-12
一.基礎
知識範圍:java語法基礎、資料型別、控制語句、陣列、字串String。可按照程式碼進行從上往下邊敲邊學。
package java_day01; //包 public class day01{ //類 byte x0=1; //成員變數 short x1=1; //成員變數 int x2=1; //成員變數 long x3=1; //成員變數 float x4=1; //成員變數 double x5=1; //成員變數 char x6=1; //成員變數 boolean x7=true; //成員變數final int x8=1; //成員常量 public static void main(String[] args) { int y0=1; //區域性變數 final int y1=100; //區域性常量 int[] y3={1,2,3,4,5}; //一維陣列 int[][] y4= {{1,2,3},{4,5,6},{7,8,9}}; //二維陣列 String y5 ="The is a String type"; //不可變字串 String y5_1 = new String(y5); //String new建立新字元池 StringBuffer y6 = new StringBuffer(); //可變字串 StringBuilder y7 = new StringBuilder(); float type_y8 = (float)y1; //強制轉化型別 y0++; //只有混合使用(後++--)流程才執行1儲存再執行++--操作 int sum_y01 =y1+y0; //+-*/% if ((y0>y1)&(y0<y1)) { System.out.println("全真才真1"); } else if ((y0==y1)&&(y0!=y1)) { System.out.println("全真才真2"); } else { System.out.println("都是假的3"); } switch (y1/10) { //轉換 case 10: case 9: case 8: System.out.println("優秀4"); break; default: //違約 System.out.println("不及格"); break; } while (y0<10) { //先條件後執行 y0++; } do { //先執行後條件 y0++; } while(y0<20); /* for (int i = 0; i < y3.length; i++) { //for的增強,列印一維陣列 System.out.print(y3[i]); } for (int i = 0; i < y4.length; i++) { //列印二維陣列 for (int j = 0; j < y4.length; j++) { if (j==1) { // break 標籤; //根據條件停止當前包括以後的活動 continue; //跳過當前條件設定的活動繼續執行活動 } System.out.print(y4[i][j]); } } // 《String》 String a = "The is a String type.docx"; String b = "the is a String type.docx"; String[] c = {"1.Xlsx","2.docx","1.xlsx","4.docx"}; String d = new String(a); //new創了新物件 System.out.println(a==b); //判斷ab是否在同一字元池 System.out.println(a+b.concat(c)); //連線 System.out.println(a.indexOf("i",4)); //從4索引往後查詢最前 System.out.println(a.lastIndexOf("i",4)); //從4索引往前查詢最後 System.out.println(a.substring(2,5)); //擷取 String[] a1 = a.split(" "); //空格分隔 for (String a2 : a1) { // System.out.println(a2); } System.out.println(a.equals(b)); //字串型別相等? System.out.println(a.equalsIgnoreCase(b)); //忽略大小寫 System.out.println(a.compareTo(b)); //對比a與b大小。 System.out.println(a.compareToIgnoreCase(b)); //忽略大小寫 int a1=0; //定義容器 int a3=0; for (String a2 : c) { a2 = a2.toLowerCase(); //大寫轉小寫 if(a2.endsWith("xlsx")) {a1++;} //指定字尾結束 else{a3++;} } for (String a4 : c) { a4.trim(); //去空值(空格) if(a4.startsWith("1")) {a1++;} else if(a4.startsWith("2")) {a3++;} //指定字首結束 } System.out.println(a1); StringBuilder e = new StringBuilder("the is a StringBuilder"); //可變字串 System.out.println(e.length()); //StringBuilder長度 System.out.println(e.capacity()); //StringBuilder容量 System.out.println(e.insert(0,"love")); //插入 System.out.println(e.delete(0, 4)); //刪除n~m值 System.out.println(e.append(" love")); //在後面追加 System.out.println(e.replace(0, 4, "love 1 ")); //指定n~m值修改 */ System.out.printf("\n%d\r",y0); System.out.println("==================以上顯示為測試區================="); System.out.printf("\t\t學習java\n"+"自"+"從\"第%d天\"算起\'第%d天\'結束!\ry0y1是否相等?:%b",y0,y1,y0==y1); } }
二.面向物件
2.1.面向物件框架一
2.2.面向物件框架二
程式碼
package java地球; // 所屬星球 public class java動物世界_鷹 { //鷹群世界 // 1.成員變數: 鷹群世界特徵+世界資源 String color = "黑"; // 封裝性: 訪問範圍{private私有(當前類[注意:不能修飾(外部類)])、無修飾[預設](所屬星球)、protected(不同星球的子類[注意:不能修飾(外部類)])、public(所有星球)} <--訪問控制修飾符加在[類|變數|方法]前面 char Tree_grass = '草'; // 成員變數 public final String Stardust = "星塵"; // final: 成員常量 String insect = "蟲"; // 成員變數 static int Tree; // static靜態修飾: [[靜態|例項]類|變數|方法]可任意使用,但用靜態修飾的[類|變數|方法]不能使用[[例項]類|變數|方法]。執行時啟動建立,執行結束時自動銷燬釋放記憶體。 // 2.成員方法: 鷹界統一動作 void 吃(){ // 3.區域性變數: 定義在 方法內,語句內。作用範圍結束,變數空間會自動釋放。 char days = '百'; System.out.println("鷹正在吃"+insect); System.out.println("吃完後!:\n\t又能活上"+days+"天了,真是充電1分鐘用電5小時呀!"); System.out.println("還意外發現神祕人留下的"+Tree+"樹枝資源!"); } // 3.成員方法: 鷹界正統血緣 void 鷹界血緣(){ System.out.println("鷹的意志!"); } // 二.物件: 單隻(鷹一代) private class 鷹一代 extends java動物世界_鷹{ // 繼承性: 鷹一代繼承java動物世界_鷹 // 2.1 成員變數: 鷹一代引數 private String name = "鷹一代"; private int age = 80; // 2.2 成員方法: 鷹一代資訊 private void 鷹一代資訊() { System.out.println("名字:" + name + "\n年齡:" + age + "\n羽毛顏色:" + color); } // 2.3 成員方法: 鷹一代動作 private void 鷹一代捕食動作(int time) { if (time >= 6 & time <= 10) { System.out.println("時間是" + time + "點,鷹正在捕" + insect + "回去喂小鷹"); } else { System.out.println("還在休息"); } } // 3.3 鷹血統 private void 鷹一代血緣(){ System.out.println("血緣: 一代鷹成功獲得血緣!"); super.鷹界血緣(); //呼叫鷹群血緣: 呼叫前提繼承+目標訪問控制修飾符不能是私有(有個例外子類能無條件訪問父類內所有[變數|方法]) } } // 內部類: 定義在統一類中第一個以後視為外部類 // 鷹二代一號 class 鷹二代1號 extends 鷹一代 { String name = "鷹一代1號"; int age = 20; char Tree_grass = '枝'; //此變數名跟鷹群世界資源Tree_grass一樣 private void 鷹二代1號資訊(){ System.out.println("名字:" + name + "\n年齡:" + age + "\n羽毛顏色:" + color); } private void 鷹二1號代捕食動作(int a) { super.鷹一代捕食動作(a); // java繼承性: 繼承鷹一代技能【注意】java 不支援多繼承,但支援多重繼承。 } private void 鷹二代1號新技能(char day){ //java多型性: 在繼承的基礎上學到新技能 if (day =='秋'){ System.out.println(day+"天來了"+name+"正在尋找樹"+this.Tree_grass+"建窩外部預防冬天!"); // 指定世界資源名 System.out.println(day+"天來了"+name+"正在尋找"+super.Tree_grass+"建窩內部預防冬天!"); //指定當前類資源名 } else if (day=='冬'){ System.out.println(day+"天來了"+name+"正在繁育後代!"); } else if (day=='春'){ System.out.println(day+"天來了"+name+"正在尋找獵物,整個冬天沒吃東西了!"); } else if (day=='夏'){ System.out.println(day+"天來了"+name+"正在逃避獵人的捕殺"); } } private int 鷹二代1號儲存資源(int a){ Tree = a; return Tree; } private void 鷹二代1號血緣(){ System.out.println("血緣: 鷹二代1號成功獲得血緣!"); super.鷹一代血緣(); // 呼叫鷹一代留下的血緣 } } // 外部類 // 鷹二代二號 class 鷹二代2號 extends 鷹一代{ String name = "鷹二代2號"; int age = 19; void 鷹二代2號資訊(){ System.out.println("名字:" + name + "\n年齡:" + age + "\n羽毛顏色:" + color); } void 鷹二代2號建鷹窩(){ System.out.println("鷹二代2號獲得"+Tree+"資源成功建立了自己的鷹帝國!"); } private void 鷹二代2號血緣(){ System.out.println("血緣: 鷹二代2號成功獲得血緣!"); super.鷹一代血緣(); // 呼叫鷹一代留下的血緣 } } // 外部類 public static void main(String[] args) { // 主方法->方法->類賦值 java動物世界_鷹 a = new java動物世界_鷹(); // java例項化物件: 初始化世界 java動物世界_鷹.鷹一代 b = a.new 鷹一代(); // 初始化鷹一代物件 java動物世界_鷹.鷹二代1號 c = a.new 鷹二代1號(); // 初始化二代鷹1號物件 java動物世界_鷹.鷹二代2號 d = c.new 鷹二代2號(); b.鷹一代資訊(); b.鷹一代捕食動作(7); // 傳入實參時間6~10點在捕食 b.鷹一代血緣(); // 一代結束 System.out.println("----------->分隔<----------"); c.鷹二代1號資訊(); c.鷹二1號代捕食動作(11); c.鷹二代1號新技能('冬'); // 傳入“春夏秋冬”天看看他在幹嘛 c.鷹二代1號血緣(); c.鷹二代1號儲存資源(100); // 傳入資源數 System.out.println("----------->分隔<----------"); d.鷹二代2號資訊(); d.鷹二代2號建鷹窩(); d.鷹二代2號血緣(); } }