1. 程式人生 > >瘋狂JAVA講義個人筆記——第四章

瘋狂JAVA講義個人筆記——第四章

看到了面向物件(上),GOD,搞了我1天多了,終於搞清楚4.1的各種靜態與非靜態的呼叫,所以先寫點筆記吧~

類,就是class,就是現在寫的程式第一行public class 什麼的就是類

他裡面包含了很多東西,現在寫過最多的就是方法,比如main方法

同時,他裡面還可以寫變數,還有一個叫構造器,暫時沒搞明白是什麼

如果現在要使用這個類去幹什麼怎麼做呢?

要麼直接呼叫這個類,比如我之前類名都是atlas,那麼用裡面的方法就是atlas.run();

要麼就建立一個變數代表它,atlas a=new atlas(); 就是創造了一個叫a的東西,他就代表了atlas,之後可以執行a.run

但是呢,就會有一個很繞的東西,簡單說就是"靜態成員不能直接訪問非靜態成員,非靜態成員可以相互訪問,非靜態成員訪問靜態成員需要直接用類效用靜態成員,靜態成員需要建立物件去訪問非靜態成員"

是不是聽起來崩潰了》。。。。。

這本書我第一次感覺寫的不好的就是這裡,對於物件和例項這兩個詞,一會用這個一會用那個,其實一個意思,暈。還有就是,特別繞........還好我繞出來了

大概就是,如果有一個方法帶有static那麼你在同一個類裡面用的時候直接用就好了,或者加this

如果木有的話,你就需要先建立一個這個class的物件之後再呼叫這個方法

public class atlas{
	public static void main(String[] args){
                  this test1();
	           atlas a=new atlas();
                    a.test2();

	}
	public static void test1(){
		System.out.println("This is test1");
	}
        public void test2(){
		System.out.println("This is test2");
        }
}

寫這個部落格也是糾結,看了好久,不斷地編輯,之後還得上傳稽核,暈。

廢話不多說,今天看到的是封裝,傳說中面向物件的三大特徵之一,簡單的說也就是,別人不能直接對類變數進行操作,需要經過一定的方法

簡單的講就是判斷一下防止使用者輸入錯誤,複雜的來說,就是提高程式碼效率吧......

我覺的這個例題很經典,發一下

首先定義一個叫person的類,兩個例項變數都是private的,只能通過方法改修改這兩個變數的值

public class Person{
	private String name;
	private int age;
	public void setName(String name){
		if (name.length()>6 ||name.length()<2){
			System.out.println("您輸入的姓名不合法");
			return;
		}else{
			this.name=name;
		}
	}
	public String getName(){
		return this.name;
	}
	public void setAge(int age){
		if (age>100 || age<0){
			System.out.println("您設定的年齡不合法");
			return;
		}else{
			this.age=age;
		}
	}
	public int getAge(){
		return this.age;
	}
}
之後測試一下
import java.util.*;
public class atlas{
	public static void main(String[] args){
		Person p=new Person();
		System.out.println("請輸入年齡");
		Scanner in =new Scanner(System.in);
		int a=in.nextInt();
		p.setAge(a);
		System.out.println(p.getAge());
	}
}
同時學到的還有setter和getter的方法,也就是學java的專業人士預設的方法,基本上要改變變數先要通過setter,獲取變數需要通過getter,好,繼續看