第四章 這纔是基礎面向對象-上

第四章 面向對象-上

1. 面向對象思想編程內容的三條主線分別是什麼?

1.類及類的的成員:屬性、方法、構造器;代碼塊、內部類
2.面向對象的三大特徵:封裝、繼承、多態
3.其它關鍵字:thissuperabstractinterfacestaticfinalpackageimport

2. 談談你對面向對象中類和對象的理解,並指出二者的關係?

類:抽象的、概念上的內容
對象:實實在在存在的一個個體
對象由類派生出來的

3. 面向對象思想的體現一:類和對象的創建和執行操作有哪三步?

1.創建類
2.類的實例化
3.調用對象的結構:對象.屬性 、 對象.方法

4.畫出如下代碼在執行時的內存分配情況?

class Car{
       String color = "red";
       int num = 4;
       void show(){
			  int a = 10;
	          System.out.println("color="+color+",num="+num);
        }
  }
class CarTest {
	public static void main(String[] args) {
		Car c1 = new Car();   
		Car c2 = new Car(); 
		c1.color = "blue";  
		c1.show();   
		c2.show();
	}  
}

變量名在棧中;new的對象在堆中。

5.類的方法內是否可以定義變量?是否可以調用屬性?是否可以定義方法?是否可以調用方法?

是;是;否;是

6. 什麼是方法的重載?

兩同一不同:同一類、相同方法名;參數列表不同。
如何調用確定的方法:方法名--->參數列表

7.說明Java方法中的參數傳遞機制的具體體現?

基本數據類型:數據值
引用數據類型:地址值(含變量數據類型)
  
Person p1 = new Person();
Use u1 = p1;//編譯錯誤,類型不一致。

8.談談return關鍵字的內存解析

1.結束方法
2.針對於有返回值的方法 return + 返回的數據

9. 提供如下代碼的內存解析

public class TransferTest3{
    public static void main(String args[]){
        TransferTest3 test = new TransferTest3();
        }
     public void first(){
         int i = 5;
         Value v = new Value();
         v.i = 25;
         second(v,i);
         System.out.peintln(v,i);
     }
     public void second(Value v, int i){
            i = 0;
            v.i = 20;
            Value val = new Value();
            v = val;
             System.out.peintln(v.i+" "+i);
        }
}
class Value{
    int i = 15;
}
1.內容結構:棧(局部變量)、堆(new 出來的結構:對象(非static成員變量)、數組)
2.變量:成員變量 vs 局部變量(方法內、方法形參、構造器內、構造器形參、代碼塊內)

10.構造器的作用是什麼?使用中有哪些點?

1.創建對象
2.初始化對象的信息
    
1.如果沒顯式的定義類的構造器的話,則系統默認提供一個空參的構造器
2.定義構造器的格式:權限修飾符  類名(形參列表){}
3.一個類中定義的多個構造器,彼此構成重載
4.一旦我們顯式的定義了類的構造器之後,系統就不再提供默認的空參構造器

11.關於類的屬性的賦值,有幾種賦值的方式。談談先後順序。

默認初始化-顯式初始化-構造器中初始化-對象.方法 或者 對象.屬性 給屬性賦值

12. this關鍵字可以用來調用哪些結構,簡單說明一下其使用。

屬性、方法、構造器
this:理解爲當前對象,當前正在創建的對象

13. Java中目前學習涉及到的四種權限修飾符都有什麼?並說明各自的權限範圍。

private int age;
private void eat(){}
修飾符 類內部 同一個包 不同包的子類 同一工程
private yes
(缺省) yes yes
protected yes yes yes
public yes yes yes yes

14. 創建Circle類,提供私有的radius屬性,提供相應的get和set方法,提供求圓面積的方法。

public class Circle{
    private double radius;
    
    public double getRadius(){
        return radius;
    }
    public void setRadius(double radius){
        this.radius = radius;
    }
    public double findArea(){
        return 3.14 * radius * radius;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章