## 一、初識面向對象
### 2.1 類和對象
### 2.2 類的創建
### 2.3 實例對象
### 【練習】
* 有關 Java 中的類和對象,以下說法錯誤的是()(選擇一項)
```
A. 同一類的所有對象都擁有相同的特征和行為
B. 類和對象一樣,只是說法不同
C. 對象是具有屬性和行為的實體
D. 類規定了對象擁有的特征和行為
```
* 在 Java 中,以下程序的運行結果是()(選擇一項)
```
public class Person {
String name;
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);
}
}
```
```
A 輸出:null
B 正常運行,但不會輸出任何內容
C 編譯出錯,不能運行
D 能運行,但運行時會出現異常
```
### 2.4 單一指責原則
### 2.5 new 關鍵字
### 【練習】
* 下面代碼運行的正確結果是()(選擇一項)
```
class Phone {
String message;
}
public class PhoneTest {
public static void main(String[] args) {
Phone p1 = new Phone();
p1.message = "hello";
Phone p2 = p1;
p2.message = "world";
System.out.println(p1.message);
}
}
```
```
A 編譯錯誤,無法正常運行
B 編譯正確,但運行時產生錯誤
C hello
D world
```
* ()空間用于存儲使用new關鍵字所創建的對象(選擇一項)
```
A 堆 B 棧 C 方法區 D 實例區
```
* 編寫自定義 Person 類,根據提示以及效果補全代碼。程序運行參考效果圖如下:
```
我是一名學生!
我是一個男孩!
我叫李明,今年10歲了,讀小學五年級了。
```
```
public class Test {
public static void main(String[] args) {
// 使用 new 關鍵字實例化對象
// 傳入name、age、grade的參數值
// 分別調用 student、sex、mySelf 方法
}
}
public class Person {
// 屬性:name、age、grade
// 創建無參無返回值的student方法,描述為:我是一名學生!
// 創建帶參(性別sex)的sex方法,描述為:我是一個**孩!
// 創建無參無返回值的mySelf方法,分別介紹姓名(name),年齡(age),年級(grade)
}
```
## 二、構造方法
### 2.1 無參構造方法
### 2.2 帶參構造方法
### 【練習】
* 分析下面的 Java 代碼,編譯運行結果是()(選擇一項)
```
public class Test {
int number;
String strname;
Test (int num, String name) {
number = num;
strname = name;
System.out.println("學號:" + num + " 姓名:" + name);
}
public static void main (String[] args) {
Test obj1 = new Test();
Test obj2 = new Test(1, "張三");
}
}
```
```
A 運行結果為:學號:1 姓名:張三
B 運行結果為:學號:null 姓名:張三
C 程序出現編譯錯誤
D 程序出現運行時異常
```
* 下面的哪幾項是合法的構造方法重載()(選擇兩項)
```
public class Diaplay {
// ...
}
```
```
A public Display(String s) {}
B public int display(int n1, int n2) {}
C Display(int ...a) {}
D public display(String s, int a) {}
```
* 下列代碼的運行結果為()
```
public class User {
String mainboard, cpu;
public User(String s1, String s2) {
mainboard = s1;
cpu = s2;
}
public static void main(String[] args) {
User c = new User("華碩", "Intel");
System.out.println("mainboard:" + c.mainboard + ", cpu:" + c.cpu);
}
}
```
### 2.3 this 關鍵字
### 【練習】
* 以下程序編譯運行后的輸出結果為()
```
public class Test {
int x, y;
Test (int x, int y) {
this.x = x;
this.y = y;
}
public static void main(String[] args) {
Test pt1, pt2;
pt1 = new Test(3, 3);
pt2 = new Test(4, 4);
System.out.println(pt1,x + pt2.x);
}
}
```
### 2.4 構造方法調用
### 【練習】
* 下列關于 this說法錯誤的選項是()(選擇兩項)
```
A 在構造方法中如果使用 this 調用其他構造方法,只能是第一條語句
B 不能在構造方法中調用同一個類的其他構造方法
C 在構造方法中如果使用 this 調用其他構造方法,語句可以放在任意位置
D 可以使用 this.方法名() 或者 this.屬性名來引用當前對象的成員
```
* 編寫自定義猴子類,按照效果圖,在編輯器中對應空白區域編寫代碼。
```
我是使用無參構造產生的猴子:
名稱:長尾猴
特征:尾巴長
我是使用帶參構造產生的猴子:
名稱:白頭葉猴
特征:頭上有白毛,喜歡吃樹葉
```
```
public class Test {
public static void main(String[] args) {
// 調用無參構造方法實例對象
// 打印輸出對象屬性
// 調用帶參構造方法實例對象
// 打印輸出對象屬性
}
}
public class Monkey {
// 屬性:姓名(name)、特征(feature)
// 無參的構造方法(默認初始化name和feature的屬性值,屬性值參考效果圖)
// 帶參的構造方法(接收外部傳入的參數,分別向 name 和 feature 賦值)
}
```
- 階段一 Java 零基礎入門
- 步驟1:基礎語法
- 第01課 初識
- 第02課 常量與變量
- 第03課 運算符
- 第04課 選擇結構
- 第05課 循環結構
- 第06課 一維數組
- 第08課 方法
- 第09課 數組移位與統計
- 第10課 基礎語法測試
- 第09課 基礎語法測試(含答案)
- 步驟2:面向對象
- 第01課 類和對象
- 第02課 封裝
- 第03課 學生信息管理
- 第04課 繼承
- 第05課 單例模式
- 第06課 多態
- 第07課 抽象類
- 第08課 接口
- 第09課 內部類
- 第10課 面向對象測試
- 第10課 面向對象測試(含答案)
- 步驟3:常用工具類
- 第01課 異常
- 第02課 包裝類
- 第03課 字符串
- 第04課 集合
- 第05課 集合排序
- 第06課 泛型
- 第07課 多線程
- 第08課 輸入輸出流
- 第09課 案例:播放器
- 第10課 常用工具測試(一)
- 第10課 常用工具測試(一)(答案)
- 第10課 常用工具測試(二)
- 第10課 常用工具測試(二)(答案)
- 階段二 從網頁搭建入門 JavaWeb
- 步驟1:HTML 與 CSS
- 第01課 HTML 入門
- 第01課 HTML 入門(作業)
- 第02課 CSS 入門
- 第02課 CSS 入門(作業)
- 第03課 CSS 布局
- 第03課 CSS 布局(作業)
- 步驟2:JavaScript 與前端案例
- 第01課 JavaScript 入門
- 第01課 JavaScript 入門(作業)
- 第02課 仿計算器
- 第03課 前端油畫商城案例
- 第04課 輪播圖
- 第05課 網頁搭建測試
- 第05課 網頁搭建測試(含答案)
- 步驟3:JavaScript 教程
- 入門
- 概述
- 基本語法
- 數據類型
- 概述
- 數值
- 字符串
- undefined, null 和布爾值
- 對象
- 函數
- 數組
- 運算符
- 算術運算符
- 比較運算符
- 布爾運算符
- 位運算符
- 運算順序
- 語法專題
- 數據類型的轉換
- 錯誤處理機制
- 標準庫
- String
- Date
- Math
- DOM
- 概述
- Document 節點
- 事件
- EventTarget 接口
- 事件模型
- 常見事件
- 階段三 數據庫開發與實戰
- 步驟1:初始數據庫操作
- 第01課 數據類型
- 第02課 表的管理
- 第03課 數據管理
- 第04課 常用函數
- 第05課 JDBC 入門
- 第06課 Java 反射
- 第07課 油畫商城
- 第08課 數據庫基礎測試
- 步驟2:MyBatis 從入門到進階
- 第01課 IntelliJ IDEA 開發工具入門
- 第02課 Maven 入門
- 第03課 工廠模式
- 第04課 MyBatis 入門
- 第05課 MyBatis 進階
- 第06課 商品信息管理
- 第07課 MyBatis 基礎測試
- 步驟3:Redis 數據庫與 Linux 下項目部署
- 第01課 Linux 基礎
- 第02課 Linux 下 JDK 環境搭建及項目部署
- 第03課 Redis 入門
- 階段四 SSM 到 Spring Boot 入門與綜合實戰
- 步驟1:Spring 從入門到進階
- 第01課 Spring 入門
- 第02課 Spring Bean 管理
- 第03課 Spring AOP
- 第04課 基于 AspectJ 的 AOP 開發
- 第05課 JDBC Template
- 第06課 Spring 事務管理
- 第07課 人員管理系統開發
- 第08課 Spring 從入門到進階測試
- 步驟2:Spring MVC 入門與 SSM 整合開發
- 第01課 Spring MVC 入門與數據綁定
- 第02課 Restful 風格的應用
- 第03課 SpringMVC 攔截器
- 第04課 辦公系統核心模塊
- 步驟3:Spring Boot 實戰
- 第01課 Spring Boot 入門
- 第02課 校園商鋪項目準備
- 第03課 校園商鋪店鋪管理
- 第04課 校園商鋪商品管理及前臺展示
- 第05課 校園商鋪框架大換血
- 步驟4:Java 面試
- 第01課 面試準備
- 第02課 基礎面試技巧
- 第03課 Web基礎與數據處理
- 第04課 主流框架