java筆記(二)
阿新 • • 發佈:2019-01-24
類和物件
類:類是模子,確定物件將會擁有的特徵(屬性)和行為(方法)。
類的特點:類是物件的型別(物件是具體的資料資訊),是具有相同屬性和方法的一組物件的集合。
屬性:物件具有的各種特徵(有什麼、特定值),每個物件的每個屬性都擁有特定值。
方法:物件執行的操作(能幹什麼)
- 定義一個類
//1、定義一個類 public class demoClass { //2、屬性 (成員變數) 有什麼 String name = "bob"; int age = 22; //3、方法 幹什麼 void getName(){ System.out.println("我的名字是bob"); } void getAge(){ System.out.println("我的年齡是22"); } }
- 如何使用類( 使用物件的步驟)
//1.建立物件
demoClass hello = new demoClass();
//2.使用物件
hello.getName();
-
成員變數和區域性變數
1、成員變數:在類中定義, 作用域為整個方法內部;初始值預設為0
2、區域性變數:在類的方法中定義,在方法中臨時儲存證據; 作用域僅限於本方法;定義時要賦值(沒有初始值),否則報錯;不同方法內可有同名區域性變數
3、兩個變數名相同時,會取區域性變數中的值
-
構造方法
1、構造方法沒有返回值,名稱與類名相同;
2、有引數的構造方法的功能就是建立例項同時給成員變數初始化(引數列表的引數是給成員變數初始化用的);
3、當然也可以在構造方法中進行輸出操作;也可在構造方法中進行一些判斷,判斷引數是否合理,若不合理還可以進行更多的騷操作;
4、當類中無定義構造方法時,系統預設新增無參的構造方法,當定義了構造方法時,無論是帶參的還是不帶參的,都不會自動新增無參的構造方法,所以若在類中定義了帶參的構造方法,最好也把無參的構造方法寫上;
栗子
**建立類** package com.test; public class Telphone { public Telphone(){ System.out.println("輸出了無引數的構造方法"); } public Telphone(int num1 ,int num2){ System.out.println( "有引數的構造方法,值為" + num1 + "和" + num2 ); } } **入口類** package com.test; public class testTel { public static void main(String [] args){ int a1 = 21; int a2 = 22; // 五引數的構造方法 Telphone hello = new Telphone(); //輸出了無引數的構造方法 //有引數的構造方法 Telphone hello2 = new Telphone(a1,a2); // 有引數的構造方法,值為21和22 } }
- 靜態方法
Java 中被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件所共享。靜態成員可以使用類名直接訪問,也可以使用物件名進行訪問。當然,鑑於他作用的特殊性更推薦用類名訪問~~我們可以基於一個類建立多個該類的物件,每個物件都擁有自己的成員,互相獨立。我們也可以建立static 靜態變數讓 該類所有的物件共用。
栗子
public class staticVarFun {
//定義一個靜態變數
static String firstName = "bob";
//定義一個靜態方法
public static String getName(String name){
return name;
}
//入口方法
public static void main(String [] args){
//類名直接呼叫靜態變數
System.out.println(staticVarFun.firstName); //bob
//建立類的物件
staticVarFun hello = new staticVarFun();
//使用物件名的形式修改靜態變數的值
hello.firstName = "polly";
System.out.println( hello.firstName); //polly
System.out.println( staticVarFun.firstName); //polly
// 呼叫靜態方法getName
String allScore = getName( staticVarFun.firstName);
System.out.println( allScore); //polly
}
}
- static 靜態初始化塊 (靜態初始化塊只在類載入時執行,且只會執行一次)
在類的宣告中,可以包含多個初始化塊,當建立類的例項時,就會依次執行這些程式碼塊。如果使用 static 修飾初始化塊,就稱為靜態初始化塊。
需要特別注意:靜態初始化塊只在類載入時執行,且只會執行一次,同時靜態初始化塊只能給靜態變數賦值,不能初始化普通的成員變數。
栗子
public class initializeStatic {
String name; //申明變數name
String sex;//申明變數sex
static int age;//申明靜態變數age
public initializeStatic(){ // 構造方法
name = "湯姆";
}
{
sex = "男";
}
static {
age = 24;
}
public void info(){
System.out.println("姓名:" + name +" 性別:" + sex + " 年齡:" + age);
}
//入口方法
public static void main(String [] args){
// 建立物件
initializeStatic hello = new initializeStatic();
// 呼叫物件的info方法
hello.info(); // 姓名:湯姆 性別:男 年齡:24
}
}