成功上傳的截圖
前端
碼雲上的截圖
java
遇到以下的問題
linux
解決方法
我發如今進行第一步git clone命令時候,沒有用到我碼雲的https地址,而且在此地址的基礎上cd一個後面部分的文件夾;好比個人碼雲https的地址爲https://gitee.com/yuchao20189220/over_20189220java.git,因此以下圖所示
git
遇到問題
運行一下"statistics.sh"腳本的時候,發現:
編程
解決方法
app
"statistics.sh"腳本運行結果圖
函數
public class People {//class關鍵字,定義類的關鍵字,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) {//主函數 People p=new People();//對象的實例化 p.eat();//調用類的方法 p.sleep(); } }
public class People { public String name; public String sex; public int age; public People(){//默認的構造方法,初始化對象的時候調用默認構造方法 System.out.println("類默認的構造方法,不含參數"); } public People(String name){//含參的構造方法 System.out.println("含參的構造方法"); } 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(); } }
package com.cnblogs; public class Men { public String name;//共有屬性 private int age;//私有屬性 protected String sex;//受保護的屬性 int a=10;//默認的 }
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循環這個局部內進行使用 for(int i=0;i<10;i++){ System.out.println("局部變量,在能夠在局部進行使用"+i); } } }
package com.cnblogs; public class Dog { int a=21; int b=12; public Dog(){//this關鍵字做爲方法名來初始化對象 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關鍵字能夠調用類的屬性和方法 int c=this.a+this.b; System.out.println(c); } public void setA(int a){//使用this關鍵字區分同名變量 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); } }
package com.cnblogs; public class Cat { public void cat(){ System.out.println("方法的重載"); } public void cat(int a,int b){ System.out.println("方法的重載,方法中參數的個數"); } public void cat(String c,int d){ System.out.println("方法的重載,方法中參數的類型不一樣"); } public void cat(int e,String f){ System.out.println("方法的重載,方法中參數順序不一樣"); } public static void main(String[] args) { // TODO Auto-generated method stub } }
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); } }
對於面向對象編程來講,抽象是它的一大特徵之一。在Java中,能夠經過兩種形式來體現OOP的抽象:接口和抽象類。學習
abstract void fun();
[public] interface InterfaceName {` }
接口中能夠含有 變量和方法。可是要注意,接口中的變量會被隱式地指定爲public static final變量(而且只能是public static final變量,用private修飾會報編譯錯誤),而方法會被隱式地指定爲public abstract方法且只能是public abstract方法(用其餘關鍵字,好比private、protected、static、 final等會報編譯錯誤),而且接口中全部的方法不能有具體的實現,也就是說,接口中的方法必須都是抽象方法。從這裏能夠隱約看出接口和抽象類的區別,接口是一種極度抽象的類型,它比抽象類更加「抽象」,而且通常狀況下不在接口中定義變量。this
抽象類和接口的區別
1.語法層面上的區別設計
1)抽象類能夠提供成員方法的實現細節,而接口中只能存在public abstract 方法;
2)抽象類中的成員變量能夠是各類類型的,而接口中的成員變量只能是public static final類型的;
3)接口中不能含有靜態代碼塊以及靜態方法,而抽象類能夠有靜態代碼塊和靜態方法;
4)一個類只能繼承一個抽象類,而一個類卻能夠實現多個接口。
2.設計層面上的區別
1)抽象類是對一種事物的抽象,即對類抽象,而接口是對行爲的抽象。抽象類是對整個類總體進行抽象,包括屬性、行爲,可是接口倒是對類局部(行爲)進行抽象。舉個簡單的例子,飛機和鳥是不一樣類的事物,可是它們都有一個共性,就是都會飛。那麼在設計的時候,能夠將飛機設計爲一個類Airplane,將鳥設計爲一個類Bird,可是不能將 飛行 這個特性也設計爲類,所以它只是一個行爲特性,並非對一類事物的抽象描述。此時能夠將 飛行 設計爲一個接口Fly,包含方法fly( ),而後Airplane和Bird分別根據本身的須要實現Fly這個接口。而後至於有不一樣種類的飛機,好比戰鬥機、民用飛機等直接繼承Airplane便可,對於鳥也是相似的,不一樣種類的鳥直接繼承Bird類便可。從這裏能夠看出,繼承是一個 "是否是"的關係,而 接口 實現則是 "有沒有"的關係。若是一個類繼承了某個抽象類,則子類一定是抽象類的種類,而接口實現則是有沒有、具有不具有的關係,好比鳥是否能飛(或者是否具有飛行這個特色),能飛行則能夠實現這個接口,不能飛行就不實現這個接口。
2)設計層面不一樣,抽象類做爲不少子類的父類,它是一種模板式設計。而接口是一種行爲規範,它是一種輻射式設計。什麼是模板式設計?最簡單例子,你們都用過ppt裏面的模板,若是用模板A設計了ppt B和ppt C,ppt B和ppt C公共的部分就是模板A了,若是它們的公共部分須要改動,則只須要改動模板A就能夠了,不須要從新對ppt B和ppt C進行改動。而輻射式設計,好比某個電梯都裝了某種報警器,一旦要更新報警器,就必須所有更新。也就是說對於抽象類,若是須要添加新的方法,能夠直接在抽象類中添加具體的實現,子類能夠不進行變動;而對於接口則不行,若是接口進行了變動,則全部實現這個接口的類都必須進行相應的改動。
多態存在的三個必要條件1、要有繼承;2、要有重寫;3、父類引用指向子類對象。
Java中多態的分類:
在java中,多態大體能夠分爲如下幾種狀況:
1)person爲父類,student爲子類。那麼:person p=new student();
2)fliable爲接口,bird爲實現接口的類,那麼:fliable f=new bird();
3)fliable爲抽象類,bird爲繼承fliable的類,那麼:fliablef=new bird();
多態時須要說明p聲明爲父類的引用,但他實際爲子類引用。可是他只能調用父類中的方法。若是子類中的方法覆蓋了父類方法,那麼將調用父類方法(虛方法調用)。接口多態也是一樣的,也許你會問,若是f要調用本身的方法,那豈不是出錯了?其實這裏也是方法的覆蓋,由於實現接口的子類確定會實現接口中的方法, 因此此種狀況下調用的是bird中的方法。可是若是bird有一個方法在接口中沒有定義,那麼f不能調用。