Java初级学习(转载http://www.cnblogs.com/biehongli/p/5737612.html)
1:初學(xué)JAVA,都知道JAVA是面向?qū)ο蟮木幊獭9P者這節(jié)開始說說類和對象。(實例僅供參考,如若復(fù)制粘貼記得修改包名和類名,避免出錯)
學(xué)習(xí)JAVA的快捷鍵,Alt+/代碼補全功能,其實此快捷鍵啟動了Eclipse代碼輔助菜單,Shift+Ctrl+o快捷鍵導(dǎo)入包
Ctrl+F可以快速查找API,中文版API,百度云鏈接:http://pan.baidu.com/s/1slQWhCL 密碼:cfxo
首先
對象的創(chuàng)建:類名? 對象名=new 類名();也許大多數(shù)學(xué)習(xí)java的都會寫,但是理解方面是這樣的,
new一個類名,就會得到一個對象,而這個對象的類型就是這個類名的類型
比如說:Car car=new Car();//就是通過new一個Car類名,得到car這個對象,而這個對象就是Car類型的
2:類必須先定義才能使用。類是創(chuàng)建對象的模板,創(chuàng)建對象也叫類的實例化。
package com.cnblogs;//定義包的格式,關(guān)鍵詞package,包的名字最規(guī)范的格式是域名的反寫,比如com.什么
public class People {//class關(guān)鍵字,定義類的關(guān)鍵字,People是類的名稱
?? ?
?? ?public String name;//類的屬性
?? ?public String sex;
?? ?public int age;???
//類的方法
?? ?public void sleep(){
?? ??? ?System.out.println("人疲倦的時候喜歡睡覺覺");
?? ?}
?? ?
?? ?public void eat(){
?? ??? ?System.out.println("人饑餓的時候喜歡吃飯飯");
?? ?}
?? ?public static void main(String[] args) {//主函數(shù)
?? ??? ?People p=new People();//對象的實例化
?? ??? ?p.eat();//調(diào)用類的方法
?? ??? ?p.sleep();
?? ?}
}
3:構(gòu)造方法
構(gòu)造方法的名稱必須與類的名稱相同,并且沒有返回值。
每個類都有構(gòu)造方法。如果沒有顯式地為類定義構(gòu)造方法,Java編譯器將會為該類提供一個默認的構(gòu)造方法。
package com.cnblogs;
public class People {
?? ?
?? ?public String name;
?? ?public String sex;
?? ?public int age;
?? ?
?? ?public People(){//默認的構(gòu)造方法,初始化對象的時候調(diào)用默認構(gòu)造方法
?? ??? ?System.out.println("類默認的構(gòu)造方法,不含參數(shù)");
?? ?}
?? ?public People(String name){//含參的構(gòu)造方法
?? ??? ?System.out.println("含參的構(gòu)造方法");
?? ?}
?? ?public void sleep(){
?? ??? ?System.out.println("人疲倦的時候喜歡睡覺覺");
?? ?}
?? ?
?? ?public void eat(){
?? ??? ?System.out.println("人饑餓的時候喜歡吃飯飯");
?? ?}
?? ?public static void main(String[] args) {
?? ??? ?People p=new People();
?? ??? ?p.eat();
?? ??? ?p.sleep();
?? ?}
?? ?
}
4:Java 通過修飾符來控制類、屬性和方法的訪問權(quán)限和其他功能,通常放在語句的最前端。
權(quán)限(訪問)修飾符關(guān)鍵字包含:public ,private ,protected,另外一個就是默認的;
public:對所有類可見,包含本類,同包其他類或者子類,其他包的類或者子類
protected:對本類可見,對同包其他類或者子類可見,對其他包的類或者子類不可以見
private:只對本類可見,對同包其他類或者子類不可見,對其他包的類或者子類不可以見
默認:則是對同一包內(nèi)可見
實例如下:
package com.cnblogs;
public class Men {
?? ?
?? ?public String name;//共有屬性
?? ?private int age;//私有屬性
?? ?protected String sex;//受保護的屬性
?? ?int a=10;//默認的
}
5:變量的作用域,包含全部變量和局部變量
舉例如下
package com.cnblogs;
public class Men {
?? ?//全部變量,在整個作用域都可以使用
?? ?public String name;//共有屬性
?? ?private int age;//私有屬性
?? ?protected String sex;//受保護的屬性
?? ?int a=10;
?? ?public static void main(String[] args) {
?? ??? ?//定義的i是局部變量,只可以在for循環(huán)這個局部內(nèi)進行使用
?? ??? ?for(int i=0;i<10;i++){
?? ??? ??? ?System.out.println("局部變量,在可以在局部進行使用"+i);
?? ??? ?}
?? ?}
?? ?
}
6:this關(guān)鍵字
this 關(guān)鍵字用來表示當前對象本身,或當前類的一個實例,通過 this 可以調(diào)用本對象的所有方法和屬性。
成員變量與方法內(nèi)部的變量重名時,希望在方法內(nèi)部調(diào)用成員變量,怎么辦呢?這時候只能使用this。
作為方法名來初始化對象,也就是相當于調(diào)用本類的其它構(gòu)造方法,它必須作為構(gòu)造方法的第一句。
作為參數(shù)傳遞,需要在某些完全分離的類中調(diào)用一個方法,并將當前對象的一個引用作為參數(shù)傳遞時。
舉例如下
package com.cnblogs;
public class Dog {
?? ?
?? ?int a=21;
?? ?int b=12;
?? ?
?? ?public Dog(){//this關(guān)鍵字作為方法名來初始化對象
?? ??? ?this(23,43);
?? ?}
?? ?
?? ?public Dog(int a, int b) {
?? ??? ?// TODO Auto-generated constructor stub
?? ??? ?this.a=a;
?? ??? ?this.b=b;
?? ??? ?System.out.println(a+" "+b);
?? ?}
?? ?public void add(){//通過this關(guān)鍵字可以調(diào)用類的屬性和方法
?? ??? ?int c=this.a+this.b;
?? ??? ?System.out.println(c);
?? ?}
?? ?
?? ?public void setA(int a){//使用this關(guān)鍵字區(qū)分同名變量
?? ??? ?this.a=a;
?? ?}
?? ?public int getA(){
?? ??? ?return a;
?? ?}
?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?Dog d=new Dog();
?? ??? ?d.add();
?? ??? ?
?? ??? ?d.setA(44);
?? ??? ?int dd=d.getA();
?? ??? ?System.out.println(dd);
?? ?}
}
7:JAVA中方法的重載(構(gòu)造方法也可以重載)
即方法的名字相同,而方法的參數(shù)類型,個數(shù),順序不同即為方法的重載
注意1:聲明為final的方法不可以重載,聲明為static的方法不能被重載,但是能夠被再次聲明。
注意2:僅僅是返回值類型不同,不能構(gòu)成方法的重載
舉例如下:
package com.cnblogs;
public class Cat {
?? ?
?? ?public void cat(){
?? ??? ?System.out.println("方法的重載");
?? ?}
?? ?public void cat(int a,int b){
?? ??? ?System.out.println("方法的重載,方法中參數(shù)的個數(shù)");
?? ?}
?? ?public void cat(String c,int d){
?? ??? ?System.out.println("方法的重載,方法中參數(shù)的類型不同");
?? ?}
?? ?public void? cat(int e,String f){
?? ??? ?System.out.println("方法的重載,方法中參數(shù)順序不同");
?? ?}
?? ?
?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?
?? ?}
}
8:包裝類(Wrapper Classes),拆箱和裝箱
基本類型和對應(yīng)的包裝類可以相互裝換:
由基本類型向?qū)?yīng)的包裝類轉(zhuǎn)換稱為裝箱,例如把double包裝成 Double 類的對象;
包裝類向?qū)?yīng)的基本類型轉(zhuǎn)換稱為拆箱,例如把 Integer 類的對象重新簡化為 int。
package com.cnblogs;
public class Sun {
?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?int a=32;
?? ??? ?Integer i=new Integer(a);
?? ??? ?System.out.println("手動進行裝箱"+i);
?? ??? ?
?? ??? ?int a2=i.intValue();//此方法的作用是以int值返回此Integer對象
?? ??? ?System.out.println("手動進行拆箱"+a2);
int a4=54;
?? ??? ?Integer i4=a4;//自動裝箱
?? ??? ?System.out.println("自動進行裝箱"+i4);
?? ?}
}
重點筆記,加強理解多態(tài)的含義
多態(tài)存在的三個必要條件:
- 繼承
- 重寫
- 父類引用指向子類對象
轉(zhuǎn)載于:https://www.cnblogs.com/qiansan/p/6702936.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Java初级学习(转载http://www.cnblogs.com/biehongli/p/5737612.html)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自学linux指令分析-find
- 下一篇: Java计算两个程序运行时间