JAVA學習---面向對象基礎

1.理解面向對象

1.1瞭解經常使用的術語

對象、抽象、類、實例、抽象類、接口、構造方法、包、封裝、繼承、多態html

1.2面向對象與面向過程的區別

博文1博文2java

1.3理解對象

對象---現實世界(包括邏輯世界)的實體的投影和屬性sql

屬性---對象的性質數據庫

方法---對象的行爲編程

1.4理解類

類是對事物的抽象,將對象的屬性和方法封裝到獨立的單位內部。網絡

2.類

2.1類的定義(public、default、abstract、final修飾符)

[訪問修飾符] [修飾符] class類名{
      //類成員
}

訪問修飾符:public(公開的,最多隻有一個包含public修飾的外部類)、default(默認修飾符,能夠有多個)工具

修飾符:abstract(修飾抽象類,只能被繼承重寫)、final(修飾最終類,不能被繼承)this

2.2成員變量---對應於屬性

2.3成員方法---對應於方法

成員方法:構造方法、main方法、通常成員方法spa

2.4成員修飾符(public、protected、default、private、static、final、abstract、native、synchronized)

可訪問權限.net

名稱 當前類 相同包 子類(不一樣包) 全部類
public
protected  
默認    
private      

static:靜態,不須要建立類的實例就能夠訪問,具備全局變量的效果

final:最終類,屬性方法沒法修改,能夠被繼承而不能夠重寫

abstract:修飾抽象類,方法只有被重寫才能使用,本身不能被建立實例對象

native:被修飾方法能夠調用非java編寫的代碼,語言交互

synchronized:同步鎖

2.6成員變量和局部變量的區別

(靜態變量=類變量)+實例變量 = 成員變量

定義的位置不一樣,成員變量存在於類中,局部變量存在於方法中

生命週期不一樣,成員變量與實例對象生命週期一致,局部變量和方法生命週期一致

做用域不一樣,成員變量在整個類內部能夠訪問,局部變量則只有在方法中能夠訪問

修飾符不一樣(大概局部變量只能被final修飾)

優先級不一樣,局部變量優先級高

局部變量必須進行變量初始化

2.7 main方法

主方法,程序的入口點,也是程序第一個被執行的方法

3.類的實例

3.1構造器

構造方法,與類名相同,完成實例的初始化,能夠有多個,無參或有參,通常public修飾,使用this相互調用(放在第一行)

3.2建立類的實例

2種方法
1----類名 實例名 = new 類的構造方法名(); 2----類名 實例名 = null; 實例名 = new 類的構造方法名();

3.3訪問實例的成員

實例名.屬性名;
實例名.方法名();

3.4 this關鍵字

實現訪問自身類的方法或屬性

3.5匿名對象

一種相似簡寫的形式:new 類的構造方法名.屬性名或方法名();

3.6垃圾回收(System.gc()、Runtime.getRuntime().gc())

不按期的清理無引用的對象所佔據的空間

4.方法

4.1方法的定義

4.2方法的分類(無參數方法、有參數方法、無返回值、返回基礎數據類型的值、返回引用數據類型的值)

4.3方法的調用

4.4方法的參數傳遞(值傳遞、引用傳遞)

4.5方法的重載

兩個或多個同名的方法,而且方法的參數、類型、順序至少有一個不一樣

5. static關鍵字

5.1使用static修飾變量

5.2使用static修飾方法

5.3使用static修飾代碼塊---能夠爲類的屬性進行初始化

5.4單例模式---確保指定類只有一個實例

6.包

6.1包的概念及應用(分類、訪問權限限制、避免類的重名衝突)

package 包名;

6.2使用import導入包(使用長名類、使用import語句)

import 包名.類名; //導入某個類
import 包名. *;     //導入全部類

6.3 Java經常使用的包

java.lang:Java的基礎類;

java.awt:建立用戶圖形界面的類文件集合;

java.swing:輕量級組件包;

java.io:與輸入輸出相關的文件和流的操做類與接口;

java.util:各類工具類;

java.net:網絡編程方面的類和接口;

java.sql:數據庫訪問相關類集合。

import sun.tools.tree.ThisExpression;

//學生成績信息管理
public class Demo6_1 {
    
    private String name;
    private String major;
    private double dbmath;
    private double dbenglish;
    
    private void  setMessage(String name, String major, double dbmath, double dbenglish) {
        this.name = name;
        this.major = major;
        this.dbmath = dbmath;
        this.dbenglish = dbenglish;
    }
    
    private void getMessage() {
        System.out.print("學生信息以下:\n");
        System.out.print("姓名:" + this.name + " 專業:" + this.major + " 數學成績:" + this.dbmath + " 英語成績:" + this.dbenglish);
    }
    private void sum() {
        System.out.println("學生的總成績爲:" + (this.dbmath + this.dbenglish));
    }
    private void average() {
        System.out.print("學生的平均成績爲:" + ((this.dbmath + this.dbenglish)/2));
    }
    
    public static void main(String[] args) {
        Demo6_1 stu = new Demo6_1();
        stu.setMessage("張三", "電子科學與技術", 150, 148);
        stu.getMessage();
        stu.sum();
        stu.average();
    }
}

學生信息以下:姓名:張三 專業:電子科學與技術 數學成績:150.0 英語成績:148.0學生的總成績爲:298.0學生的平均成績爲:149.0

相關文章
相關標籤/搜索