Java學習總結1

來源:互聯網
上載者:User

標籤:

1. 斷點調試
 a:定位(設定斷點)
 b:啟動調試
 c:逐步執行  觀察變數(F5逐步執行   F6單步跳過)
d:修改
2 static  靜態
  靜態成員,為類的所有對象共用
  在靜態方法中,只能直接調用靜態成員,不能直接調用非靜態成員
  在成員方法中,可以直接調用靜態成員與非靜態成員
  靜態成員的調用: 類名打點方式調用
3 方法重載:
  在一個類中有兩個及兩個以上的方法名相同,參數列表不同(參數類型   參數個數)
4 構造器 :  對象的初始化
 特點: 構造器的名稱必須與類名相同;  無傳回值 無傳回型別
 預設情況下,類中有一個無參構造方法
 待我們寫出有  有參構造器,系統預設的無參構造器不再產生  。if......we need .....
5 在構造器中使用this
在構造器中調用其他構造器
  this();      (this語句必須是本構造器的第一句)

 

方法摘要
1  char
    charAt(int index)

           返回指定索引處的 char 值。
               index - char 值的索引。
2 string
       concat(String str)
          將指定字串串連到此字串的結尾。
                 str - 串連到此 String 結尾的 String。

        substring(int beginIndex)
          返回一個新的字串,它是此字串的一個子字串。
            beginIndex - 起始索引(包括)。
3  boolean
        endsWith(String suffix)
          測試此字串是否以指定的尾碼結束。
              suffix - 尾碼。

        startsWith(String prefix)
          測試此字串是否以指定的首碼開始。
 
       equals(Object anObject)
          將此字串與指定的對象比較。
         anObject - 與此 String 進行比較的對象

        equalsIgnoreCase(String anotherString)
          將此 String 與另一個 String 比較,不考慮大小寫。
          anotherString - 與此 String 進行比較的 String。

4 int
       indexOf(int ch)
          返回指定字元在此字串中第一次出現處的索引。
             ch - 一個字元

        indexOf(int ch, int fromIndex)
          返回在此字串中第一次出現指定字元處的索引,從指定的索引開始搜尋。
          ch - 一個字元   fromIndex - 開始搜尋的索引。

        indexOf(String str)
          返回指定子字串在此字串中第一次出現處的索引。
         str-任一字元串

        indexOf(String str, int fromIndex)
          返回指定子字串在此字串中第一次出現處的索引,從指定的索引開始。
          str - 要搜尋的子字串。fromIndex - 開始搜尋的索引位置。
     public int lastIndexOf(int ch)
    public int lastIndexOf(iint ch, int fromIndex)  
    public int lastIndexOf(String str)
    public int lastIndexOf(String str, int fromIndex)    

     length()
          返回此字串的長度。

方法調用棧

所有的方法都維護在一個稱為調用棧的結構中,當前正在執行的方法位於調用棧。

對於基本類型的變數:java虛擬機器將其放在棧中。

對於參考型別的變數:引用變數本身放在棧中,而引用所指向的對象是放在java堆中。引用不包含它所指向的對象的實際資料,而是指向記憶體中對象所在的位置。

如果一個變數是參考型別的,那麼變數的值就是一個記憶體位址,這個記憶體位址是引用指向的對象的位置。
按值調用

 
指的是在方法調用時,傳遞的參數是按值的拷貝傳遞。

樣本如下:

public class TempTest {

private void test1(int a){

//做點事情

}

public static void main(String[] args) {

TempTest t = new TempTest();

int a = 3;

t.test1(a);//這裡傳遞的參數a就是按值傳遞

}

}

按值傳遞重要特點:傳遞的是值的拷貝,也就是說傳遞後就互不相關了。

樣本如下:

public class TempTest {

private void test1(int a){

a = 5;

System.out.println("test1方法中的a==="+a);

}

public static void main(String[] args) {

TempTest t = new TempTest();

int a = 3;

t.test1(a);//傳遞後,test1方法對變數值的改變不影響這裡的a

System.out.println("main方法中的a==="+a);

}

}

運行結果是: test1方法中的a===5

      main 方法中的 a===3


3.2:按引用傳遞是什麼 指的是在方法調用時,傳遞的參數是按引用進行傳遞,其實傳遞的引用的地址,也就是 變數所對應的記憶體空間的地址。

3.3:按引用傳遞的重要特點 傳遞的是值的引用,也就是說傳遞前和傳遞後都指向同一個引用(也就是同一個記憶體 空間)。

樣本如下: 第1行 public class TempTest {

 private void test1(A a){

a.age = 20;

System.out.println("test1方法中的age="+a.age);

}

public static void main(String[] args) {

 TempTest t = new TempTest();

 A a = new A();

a.age = 10;

 t.test1(a);

 System.out.println("main方法中的age="+a.age);

 }
}
class A{
 public int age = 0;

}

運行結果如下: test1方法中的age=20

        main 方法中的 age=20

(1): “在 Java 裡面參數傳遞都是按值傳遞”這句話的意思是:按值傳遞是傳遞的值的 拷貝,按引用傳遞其實傳遞的是引用的地址值,所以統稱按值傳遞。

(2):在 Java 裡面只有基本類型和按照下面這種定義方式的 String 是按值傳遞,其它 的都是按引用傳遞。就是直接使用雙引號定義字串方式:String str = “Java 私塾”;   

方法的重載

當一個類有兩到多個同名 但是有不同的參數列表的方法。
重載樣本 如下例所示:

void getArea(int w,int h);

void getArea(float w,float h);

在第二種情況下,成員方法 getArea()接受兩個浮點變數作為它的參數,編譯器根據調 用時的不同參數來決定該調用哪一種成員方法,假如你把兩個整數提供給成員方法,就 調 用 第 一個成員方法;假如你把兩個浮點數提供給成員方法,第二個成員方法就被調用。 當寫代碼來調用這些方法中的一個方法時,便以其會根據提供的參數的類型來選擇合適 的方法。
注意:跟成員方法一樣,構造方法也可以重載。
2.2:方法的重載的規則
(1):方法名稱必須相同

(2):參數列表必須不同(個數不同,或類型不同,或參數排列順序不同) 。

(3):方法的傳回型別可以相同也可以不相同。僅僅傳回型別不同不足以成為方法的重 載。
數組

數組是由相同類型的若干項資料群組成的一個資料集合。也就是說數組是用來集合相同類 型的對象並通過一個名稱來引用這個集合,數組是參考型別。

聲明方法:

聲明一:  int x[];

聲明二:int [] x=new int[3];

聲明三:int[]x=new int[]{3,4,5};

數組複製的方法是使用System類提供的arraycopy()方法,其文法如下:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
System.arraycopy(源數組,源數組中的起始位置,目標數組,目標資料中的起始位置,要複製的數組元素的數量);
public class T {
       public static void main(String args[]){
              int arr1[] = {1,2,3,4,5};
              int arr2[] = new int[5];
              System.arraycopy(arr1, 0, arr2, 0, 5);

              for (int i = 0; i < arr2.length; i++) {
                    System.out.println(arr2[i]);
              }
       }
}
Arrays類
對數組的一些基本操作,像排序、搜尋與比較等都是很常見的。在java中提供了Array是類可以協助您作這幾個操作,Array是類位於java.util包中,他提供了幾個方法可以直接使用。

sort()                       協助您對指定的數組排序,所使用的是快速排序法

 
binarySearch()      讓您對已排序的數組進行二元搜尋,如果找到指定的值就返回該值所在的索引,否則就返回負值

fill()                           當您配置一個數組之後,會依據資料類型來給定預設值。例如整數數組就初始值為0,可以使用Arrays.fill()方法將所有的元素設定為指定的值

equals()                   比較兩個數組中的元素值是否全部相等,如果是將返回true,否則返回false

繼承

public class Employee {  

String name;

  Date hireDate;  

Date dateOfBirth;  

String jobTitle;   int grade;  

... }

public class Manager extends Employee {  

String department;  

Employee[] subordinates;  

... }

在這樣的定義中,Manager 類被定義,具有 Employee 所擁有的所有變數及方法。所有 這些變數和方法都是從父類的定義中繼承來的。

關鍵字是extends.

在 Java 程式設計語言中,對象的初始化是非常結構化的,這樣做是為了保證安全。在前面 的模組中,看到了當一個特定對象被建立時發生了什麼。由於繼承性,對象被完成,而且下 述行為按順序發生:

(1)儲存空間被分配並初始化到 0 值    

(2)進行顯式初始化    

(3)調用構造方法

關鍵字 super

關鍵字 super 可被用來引用該類的父類,它被用來引用父類的成員變數或方法。父類行 為被調用,就好象該行為是本類的行為一樣,而且調用行為不必發生在父類中,它能自動向 上層類追溯。
super 關鍵字的功能:

(1):點取父類中被子類隱藏了的資料成員

(2):點取已經覆蓋了的方法

(3):作為方法名表示父類構造方法

例如:

public class Employee {

private String name;

private int salary;

public String getDetails() {

return "Name: " + name + "\nSalary: " + salary; }

}

public class Manager extends Employee {

private String department;
public String getDetails() {

return super.getDetails() + // 調用父類的方法 "\nDepartment: " + department;

}

}

構造方法不能被繼承                                                              

 儘管一個子類從父類繼承所有的方法和變數,但 它不繼承構造方法,掌握這一點很重要。 一個類能得到構造方法,只有兩個辦法。或者寫構造方法,或者根本沒有寫構造方法, 類有一個預設的構造方法。

調用父類構造方法

在許多情況下,使用預設構造方法來對父類對象進行初始化。 當然也可以使用 super 來顯示調用父類的構造方法。
public class Employee {

String name;

public Employee(String n) {

name = n;

}

}
public class Manager extends Employee {

String department;

public Manager(String s, String d) {

super(s);

department = d;

}

}

注意:無論是 super 還是 this,都必須放在構造方法的第一行。

單繼承性                         

單繼承性:當一個類從一個唯一的類繼承時,被稱做單繼承性。單繼承性使代碼更可靠。 介面提供多繼承性的好處,而且沒有(多繼承的)缺點。 Java 程式設計語言允許一個類僅能繼承一個其它類,即一個類只能有一個父類。這個限制 被稱做單繼承性。單繼承性與多繼承性的優點是物件導向程式員之間廣泛討論的話題。Java 程式設計語言加強了單繼承性限制而使代碼更為可靠,儘管這樣有時會增加程式員的工作。後面 會學到一個被叫做介面(interface)的語言特徵,它允許多繼承性的大部分好處,而不受 其缺點的影響。

調試斷點debug    

  1、定位邏輯錯誤(設定斷點)    

  2、啟動調試    

  3、逐步執行,觀察變數    

  4、修改

 null與" "是有區別的,後者分配了空間

調用方法  

當一個方法正在執行時,有三種情況  

  1、方法返回一個值  

  2、方法不反回一個值  

  3、方法拋出一個異常給調用者(以後專門討論)

方法簽名  

  方法簽名包括存取修飾詞、可選修飾符、  方法名、參數列表、傳回值的資料類型等資訊  

  例如:   public static double random()

存取修飾詞

   public、private、protected

可選修飾符  

  static、final、abstract、native、synchronized.  

  用static修飾的方法為靜態成員,為類的所有對象共用  

  在靜態方法中,只能夠直接調用靜態成員,不能直接調用非靜態成員     

  靜態成員的調用,通過類名打點的方式調用  

  在成員方法中(未被static修飾的方法),可以直接調用靜態成員與非靜態成員  

  形式參數與實際參數 按值調用 方法重載(真他媽機智的方式,也叫做靜態多態)  

  當一個類有兩到多個同名但是有不同參數列表的方法時,就是方法重載。  

  重載一個方法,只要方法的形式參數列表對編譯器來說是截然不同時,就會方法重載。  

  與參數的類型相關,與名字無關。  

  例如:getDay(int year)與getDay(int day)不是方法重載   

  而println()中如果輸入不同的參數就可以調用不同的方法

   構造器  Person someOne = new Person();

   注意:構造方法的名字必須和類名一致,構造方法沒有傳回型別       

  預設情況下,類中有一個無參構造方法       

  例如:public Person( ){

     }       

  並且我們可以在這個構造方法中初始化資料。      
  除此之外,我們可以建立一個含參數的構造方法。      
  注意:如果我們寫出了有參構造器時,系統不會再產生無參構造器,如果要使用,必須自己重新再寫。 
  構造器是一個特殊的方法,它在類建立一個執行個體時被調用執行。 
  構造器的目的是初始化類的執行個體,使其成為一個有效狀態。 
  只要是一個對象被建立,構造器中再調用同一個類中其他的構造器,用到this語句 (必須要是構造語句中的第一句)。 
  例如:   public Person(int stuNum,char name){
    }  
      public Person(int stuNum,char name,String age){    

        this(stuNum,name);   

      }
比較字串的大小 
  忽略大小寫.equalsIgnoreCase( );    

 

Java學習總結1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.