面向對象編程(中2)

1.JavaBean
規範:
1.在JavaBean中的成員屬性必須是私有的。
[private] 數據類型 變量名稱;
2.提供一個公共的無參數的構造方法
[public]
3.爲私有的屬性提供公共的set和get方法。
set和get方法的命名規則:
[訪問修飾符] void set屬性名稱(數據類型 參數名稱){
}
[訪問修飾符] 返回值類型 get屬性名稱(){
return 返回值;
}
set方法作用:通過set方法給屬性賦值
get方法作用:通過get方法獲取屬性的值
作用:可以對數據進行臨時存儲,而且還能以面向對象的方式解決問題。
注意:boolean 類型的數據在提供set和get或者is方法時。

示例:

/**
定義 JavaBean
*/
public class JavaBeanTest{
private String name;
private int age;
private String classNum;
private boolean flag;
public JavaBeanTest(){
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setClassNum(String classNum){
this.classNum=classNum;
}
public String getClassNum(){
return classNum;
}
public void setFlag(boolean flag){
this.flag=flag;
}
public boolean isFlag(){
return flag;
}
public static void main(String[]args){
JavaBeanTest t=new JavaBeanTest();
t.name
}
}

再新建一個類

public class Test1{
public static void main(String[]args){
JavaBeanTest t=new JavaBeanTest();
t.setName("張三");
t.setAge(20);
t.setClassNum("java001");
t.isFlag(true);
System.out.println(t.getName()+t.getAge()+t.getClassNum()+t.getFlag());
}
}


2.static關鍵字
1.靜態變量

實例變量:能通過對象訪問的變量的都屬於實例變量。(類中所有沒有被static修飾的成員變量都屬於實例變量)(所謂的實例變量就是說,只有先創建出來對象,纔會爲實例變量分配內存空間)

示例:

/**
實例變量
*/
public class Test2{
String name="zhangsan";
static int age=20;
String address="beijing";
public static void main(String[]args){
Test2 t1=new Test2();
System.out.println(Test2.age);
System.out.println(t1.name+t1.address);
Test2 t2=new Test2();
Test2 t3=new Test2();
Test2 t4=new Test2();
System.out.println(t1.age+t2.age+t3.age+t4.age);
}
}

static關鍵字可以修飾變量,方法,代碼塊。
static關鍵字修飾的變量稱爲靜態變量或類變量。
語法:
staitc 數據類型 變量名稱=變量值;
注意:static只能修飾全局變量
static修飾變量的特點:
static修飾的變量屬於類,而不屬於某個對象。
static修飾的變量只有一個副本,也就是說無論創建多少個對象,訪問靜態變量都是同一個。
static修飾的變量可以通過類名.變量名的方式訪問,也可以通過對象名來訪問,但是不建議使用對象訪問類變量。

JVM加載static修飾的變量或方法的原理:
當JVM加載類時,會自動給類中所有被static修飾的變量和方法開闢空間,沒有被static修飾的變量和方法都屬於實例變量或實例方法,只有創建對象了纔會爲實例變量和實例方法開闢內存空間。

2.靜態方法
由static 修飾的方法稱爲靜態方法或者類方法。
特點:
在靜態方法中不能訪問非靜態方法或非靜態變量
在非靜態方法中可以訪問靜態方法或靜態變量
在靜態方法中不能使用this和super關鍵字。
語法:
[訪問修飾符] static 返回值類型 方法名稱(參數列表){

}

示例:

/**
靜態方法
*/
public class Test3{
int num=100;
static int num2=200;
public static void display(){
System.out.println("靜態方法");
}
public void test(){
System.out.println(num2);
display();
}
public static void main(String[]args){
Test3 t=new Test3();
t.test();
}
}

3.靜態代碼塊
語法:static{
}
注意:靜態代碼塊位於類中,但是不在任何方法裏面。
作用:就是爲了給成員靜態變量進行初始化。

示例:

/**
靜態代碼塊
*/
public class Test4{
static int num;
static String name;
static{
num=100;
name="zhangsan";
}
public static void main(String[]args){
System.out.println(Test4.num+Test4.name);
}
}


3.package打包
爲了便於管理大型軟件系統中數目衆多的類,解決類命名衝突的問題,Java引入 了包(package)。
在使用許多類時,類和方法的名稱很難決定。有時需要使用與其他類相同的名稱 。包基本上隱藏了類並避免了名稱上的衝突。
用package來聲明包,package語句必須是java源文件中的第一條語句。(若無這 條語句,則放置在無名包下)
在package語句中,用"."來指明包(目錄)的層次。包對應着文件系統的目錄層 次結構。 
如:package com.bjjava;編譯後對應的類文件位於com\bjjava目錄下。'
創建包的語法:
package 包名;
注意:包名一般都小寫;包名中不要出現java。
編譯並運行:
在當前目錄下生成帶包結構的字節碼
javac –d . Employee.java
在指定目錄下生成帶包結構的字節碼
javac –d D:\share Employee.java
運行:
java 包名.類名
包名.類名 叫做類的全限定名

示例:

/**
package 帶包的類
*/
package com.slw.test;
public class Test5{
public static void main(String[]args){
System.out.println("帶包的類");
}
}

示例2:

package sun.derun;
import com.slw.test.*;
public class Test6{
public static void main(String[]atgs){
Test5 t=new Test5();
}
}


4.import導包
要導入某個包中的所有類可以用:import 包名.*
如上例:import  com.dr.slw.*;
在同一包中的類可以直接互相引用,無需import語句。 
建議把自定義的類都放置在包中。
注意:import一定要位於package的下面。

5.常用名詞
OOP:面向對象編程
OOA:面向對象的分析
OOD:面向對象的設計
overload:方法重載
構造方法
變量
聲明


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章