Java_類與對象13_小練習
一、
1:局部變量和成員變量的區別?
A:在類中位置不同
B:在內存中位置不同
C:生命周期不同
D:初始化值不同
2:形式參數分別為基本類型和引用類型的問題?
形式參數:基本類型 形參的改變不影響實際參數
形式參數:引用類型 形參的改變直接影響實際參數
如果一個方法的形式參數是一個類的名稱,那麽這裏需要的是該類的對象。
3:匿名對象是什麽?應用場景是什麽?
沒有名字的對象。
應用場景:
A:調用方法,僅僅調用一次的時候
B:作為實際參數傳遞
4:封裝是什麽?java中封裝的體現有哪些?請舉例說明。
封裝:隱藏實現細節,提供公共的訪問方式。
封裝的體現:
類,方法,private修飾成員變量
5:this關鍵字是什麽?this關鍵字的應用場景?
this:代表當前類的對象應用
應用場景:解決局部變量隱藏成員變量的問題
6:構造方法的作用是什麽?構造方法的特點是什麽?
構造方法的註意事項是什麽?構造方法中可不可以寫return語句呢?
作用:用於對對象的數據進行初始化
特點:
A:方法名和類名相同
B:沒有返回值類型,連void都不能有
C:沒有返回值
註意事項:
A:如果我們不給構造方法,系統就提供一個默認的無參構造方法
B:如果我們給出了構造方法,系統就不再提供默認構造方法
這個時候我們想用,就要自己提供。建議自己提供無參構造方法。
class Student {
private String name;
public Student(){}
//getXxx/setXxx
}
構造方法可以有return語句,但是不能有明確的返回值。也就是說return;
7:給成員變量賦值有幾種方式?
A:setXxx()
B:帶參構造方法
8:標準的代碼編寫及測試:
A:學生類的案例
B:手機類的案例
C:長方形類的案例
class Student {
private String name;
private int age;
public Student(){}
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;
}
}
class StudentDemo {
public static void main(String[] args) {
Student s = new Student();
s.setName("林青霞");
s.setAge(27);
System.out.println(s.getName()+"---"+s.getAge());
}
}
9:一個類的成員變量初始化過程
Student s = new Student();
A:把Student.class文件加載到內存(類加載器)
B:在棧內存為s開辟空間
C:在堆內存為學生對象申請空間
D:給學生對象的成員變量進行默認初始化
E:給學生對象的成員變量進行顯示初始化
F:通過構造方法給學生對象的成員變量進行初始化
G:把堆內存的地址賦值給s變量
10:static關鍵字是什麽?有什麽特點?什麽時候用呢?
static靜態的意思,可以修飾成員變量和成員方法。
特點:
A:隨著類的加載而加載
B:優先與對象存在
C:被所有對象共享
D:可以通過類名調用
什麽時候用?
A:當一個成員被所有對象共享的時候。
B:工具類的時候。
11:靜態變量和成員變量的區別
A:所屬不同
B:內存位置不同
C:生命周期不同
D:調用不同
12:main方法各種修飾符及參數的解釋?
public:權限修飾符,權限最大
static:可以不用創建對象
void:返回值給jvm無意義
main:一個方法名,大家都默認的
String[] args:接收鍵盤錄入對象
二、
1:代碼塊是什麽?代碼塊的分類和各自特點?
2:靜態代碼塊,構造代碼塊,構造方法的執行流程?
3:繼承概述
4:繼承的好處
5:Java中繼承的特點
6:Java中繼承的註意事項?以及我們什麽時候使用繼承?
7:繼承中的成員訪問特點
A:成員變量
在子類方法中訪問一個變量
B:成員方法
在測試類中通過子類對象去訪問一個方法
8:繼承中構造方法的執行流程?假如父類沒有無參構造方法,子類應該怎麽辦?
9:面試題:
方法重寫和方法重載的區別?方法重載能改變返回值類型嗎?
Overload
Override
this關鍵字和super關鍵字分別代表什麽?以及他們各自的使用場景和作用。
10:繼承案例練習
11:猜數字小遊戲練習。
通過API學習並使用Math類的random()方法。
三、
1:final關鍵字可以幹什麽?有什麽特點?
最終的意思。可以修飾類,方法,變量。
它修飾類,類不能被繼承
它修飾方法,方法不能被重寫
它修飾變量,變量是常量
2:final關鍵字的面試題?
A:修飾局部變量
基本類型:值不能改變
引用類型:地址值不能改變
B:初始化時機
定義的時候
構造方法中
3:多態是什麽,前提是什麽?
同一個對象在不同時刻表現出來的不同的狀態
A:有繼承或者實現關系
B:有方法的重寫
C:有父類或者父接口引用指向子類對象
4:多態中成員訪問的特點?
成員變量
編譯看左邊,運行看左邊
成員方法
編譯看左邊,運行看右邊
靜態方法
編譯看左邊,運行看左邊
5:多態的好處及弊端?如何解決多態的弊端?
好處:
維護性和擴展性
弊端:父類不能使用子類特有功能
如何解決呢?
A:創建子類對象。(在內存中會多了一個對象)
B:向下轉型
6:什麽是向上轉型?什麽是向下轉型?
子 - 父
父 - 子
7:多態練習
自己做
8:抽象類概述及其特點?
抽象類:繼承的時候,提取了多個方法,而有些方法不是每個子類都是一模一樣的實現,
這個時候,就應該把這樣的方法不提供具體實現,而不提供具體實現的方法是一個抽象方法。
在一個類中,如果有抽象方法,該類必須定義為抽象類。
特點:
A:抽象類或者抽象方法由abstract修飾
B:抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類
C:抽象類不能實例化
D:抽象類的子類
a:是抽象類
b:是具體類,就要重寫所有抽象方法
9:抽象類成員特點?
A:成員變量
有變量,有常量
B:構造方法
有。用於子類訪問父類數據的初始化
C:成員方法
有抽象方法,有非抽象方法
10:抽象類練習?
11:抽象類的小問題
A:一個類如果沒有抽象方法,可不可以定義為抽象類?如果可以,有什麽意義?
B:abstract不能和哪些關鍵字共存
final
static
private
12:接口的概述及其特點?
接口:某個繼承體系需要擴展功能的時候,就應該實現接口。
特點:
A:接口用interface修飾
B:類實現接口用implements修飾
C:接口不能實例化
D:接口的實現
a:抽象類
b:具體類,重寫接口中的所有抽象方法
13:接口的成員特點?
A:成員變量 靜態常量
B:成員方法 抽象的
14:抽象類和接口的區別?
A:成員區別
B:關系區別
C:設計理念區別
"is a"
"like a"
15:接口的練習?
16:案例
貓狗案例,加入跳高的額外功能
老師和學生案例,加入抽煙的額外功能
教練和運動員案例(學生分析然後講解)
四、
1:形式參數和返回值問題
形式參數
基本類型
引用類型
返回值類型
基本類型
引用類型
2:包的定義及註意事項
package
第一條有效語句
唯一
3:導包及註意事項
import
java.lang不需要導入
java.xxx.yyy.類名; 導入到類的級別
java.xxx.yyy.*; 這個也可以,但是不建議
4:四種權限修飾符及其特點
5:常見的修飾符及組合
類:public
成員變量:private
構造方法:public
成員方法:public
6:內部類的概述及訪問特點
把類定義在另一個類的內部,叫內部類。
訪問特點:
內部類可以直接訪問外部類的成員,包括私有
外部類訪問內部類的成員需要創建對象
7:內部類的分類
按照位置不同
成員內部類
局部內部類
8:匿名內部類的格式和應用及面試題
new 類名或者接口名() {
重寫方法;
}
9:把面向對象部分的總結看一遍。準備後面使用。
有問題記錄下來問我
Java_類與對象13_小練習