程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 解析Java的JVM和類與對象的概念

解析Java的JVM和類與對象的概念

編輯:關於JAVA

解析Java的JVM和類與對象的概念。本站提示廣大學習愛好者:(解析Java的JVM和類與對象的概念)文章只能為提供參考,不一定能成為您想要的結果。以下是解析Java的JVM和類與對象的概念正文


Java流程掌握
Java流程掌握的語法與 C/C++ 相似,也有 if...else、while、do...while、for、switch...case等,這裡不再講述詳細語法,僅舉例解釋。

輸入九九乘法表(右上三角):

public class Demo {
  public static void main(String[] args){
    int i, j;
    for(i=1; i<=9; i++){
      for(j=1; j<=9; j++){
        if(j<i){
          //打印八個空格,去失落空格就是左上三角形
          System.out.print("    ");
        }else{
          System.out.printf("%d*%d=%2d ", i, j, i*j);
        }
      }
      System.out.print("\n"); 
    }
  }
}

運轉成果:

1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9 
    2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 
        3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 
            4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 
                5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 
                    6*6=36 6*7=42 6*8=48 6*9=54 
                        7*7=49 7*8=56 7*9=63 
                            8*8=64 8*9=72 
                                9*9=81


Java中也有 printf() 語句,用來掌握輸入格局,不外現實開辟中不經常使用,由於輸入到掌握台的數據很少請求嚴厲的格局,普通 println() 和 print() 就夠了。

println() 輸入內容後換行,print() 不換行。

又如,求某一年的某一月有若干天:

import java.util.*;
public class Demo {
  public static void main(String[] args){
    int days = 0;
    // 獲得用戶輸出
    Scanner sc = new Scanner(System.in);
    System.out.print("輸出年份:");
    int year = sc.nextInt();
    System.out.print("輸出月份:");
    int month = sc.nextInt();
    
    switch(month){
      case 1:
      case 3:
      case 5:
      case 7:
      case 8:
      case 10:
      case 12:
        days=31;
        break;
      case 4:
      case 6:
      case 9:
      case 11:
        days=30;
        break;
      case 2:
        // 斷定閏年
        if(year%4==0 && year%100!=0 || year%400==0)
          days=29;
        else
          days=28;
        break;
      default:
        System.out.println("月份輸出毛病!");
        System.exit(0); // 強迫停止法式
    }
    System.out.printf("天數:%d\n", days);
  }
}

運轉成果:

輸出年份:2014
輸出月份:02
天數:28

Java中沒有像C說話中的scanf()語句,從掌握台獲得輸出有點費事,我推舉應用 Scanner 類,詳細語法請年夜家自行檢查API。

Java運算符
Java中的運算符和C/C++相差無幾。
數學運算符

數學運算,成果為一個數值。見下表:

關系運算符

關系運算符,成果為一個布爾值。見下表:

位運算符

位運算符對整數的二進制情勢逐位停止邏輯運算,獲得一個整數。見下表:

前提運算符

Java中也有一個前提運算符(三目運算符):

  condition ? x1 : x2


condition為一個boolean值。依據condition,取x1或x2的值。

上面是關於運算符的一個綜合舉例:

public class Demo {
  public static void main(String[] args){
    int a=10;
    int b=10;
    
    int x=10;
    int y=21;
    int z=10;
    
    System.out.println("後自加 a=" + (a++));
    System.out.println("a的值 a=" + a);
    System.out.println("前自加 b=" + (++b));
    
    System.out.println("---------------------");
    System.out.println("說 x>y,對嗎?" + (x>y));
    System.out.println("以為 x>y 而且 x<y,對嗎?" + ( (x>y) && (x<y) ));
    System.out.println("以為 x>=y 或許 x==y,對嗎?" + ( (x>=y) || (x==y) ));
    System.out.println("以為 x<y 或許 x=z,對嗎?" + ( (x<y) || (x==z) ));
    System.out.println("---------------------");
    System.out.println("a&x 的成果是:" + (a&x));
    System.out.println("a|x 的成果是:" + (a|x));
    System.out.println("y^z 的成果是:" + (y^z));
    
    System.out.println("---------------------");
    System.out.println("a 左移2位的成果是:" + (a<<2));
    System.out.println("y 右移3位的成果是:" + (y>>3));
  }
}

運轉成果:

後自加 a=10
a的值 a=11
前自加 b=11
---------------------
說 x>y,對嗎?false
以為 x>y 而且 x<y,對嗎?false
以為 x>=y 或許 x==y,對嗎?false
以為 x<y 或許 x=z,對嗎?true
---------------------
a&x 的成果是:10
a|x 的成果是:11
y^z 的成果是:31
---------------------
a 左移2位的成果是:44
y 右移3位的成果是:2

/div>

Java中的類也是一種結構數據類型,然則停止了一些擴大,類的成員不只可所以變量,還可所以函數;經由過程類界說出來的變量也有特定的稱謂,叫做“對象”。例如:

public class Demo {
  public static void main(String[] args){
    // 界說類Student
    class Student{ // 經由過程class症結字類界說類
      // 類包括的變量
      String name;
      int age;
      float score;
      // 類包括的函數
      void say(){
        System.out.println( name + "的年紀是 " + age + ",成就是 " + score );
      }
    }
    // 經由過程類來界說變量,即創立對象
    Student stu1 = new Student(); // 必需應用new症結字
    // 操作類的成員
    stu1.name = "小明";
    stu1.age = 15;
    stu1.score = 92.5f;
    stu1.say();
  }
}

運轉成果:

小明的年紀是 15,成就是 92.5

在C說話中,經由過程構造體稱號便可以完成構造體變量的界說,並分派內存空間;然則在Java中,僅僅經由過程類來界說變量不會分派內存空間,必需應用new症結字來完成內存空間的分派。

可以將類比方成圖紙,對象比方成零件,圖紙解釋了零件的參數及其承當的義務;一張圖紙可以臨盆出具有雷同性質的零件,分歧圖紙可以臨盆分歧類型的零件。

在Java中,應用new症結字,便可以經由過程類來創立對象,行將圖紙臨盆成零件,這個進程叫做類的實例化,是以也稱對象是類的一個實例。

留意:類只是一張圖紙,起到解釋的感化,不占用內存空間;對象才是詳細的零件,要有處所來寄存,才會占用內存空間。

類所包括的變量和函數都有特定的稱謂,變量被稱為屬性(平日也稱成員變量),函數被稱為辦法,屬性和辦法統稱為類的成員。
面向對象編程(Object Oriented Programming, OOP)

類是一個通用的概念,Java、C++、C#、PHP等許多編程說話中都有類,都可以經由過程類創立對象。可以將類看作是構造體的進級版,C說話的晚輩們看到了C說話的缺乏,測驗考試加以改良,繼續了卻構體的思惟,並停止了進級,讓法式員在開辟或擴大年夜中型項目時加倍輕易。

由於Java、C++等說話都支撐類和對象,所以應用這些說話編寫法式也被稱為面向對象編程,這些說話也被稱為面向對象的編程說話。C說話由於不支撐類和對象的概念,被稱為面向進程的編程說話。

現實上,面向對象只是面向進程的進級。

在C說話中,可以將完成某個功效的反復應用的代碼塊界說為函數,將具有一類功效的函數聲明在一個頭文件中,分歧類型的函數聲明在分歧的頭文件,以便對函數停止更好的治理,便利編寫和挪用。

在Java中,可以將完成某個功效的代碼塊界說為辦法,將具有類似功效的辦法界說在一個類中,也就是界說在一個源文件中(由於一個源文件只能包括一個公共的類),多個源文件可以位於一個文件夾,這個文件夾有特定的稱謂,叫做包。

下面是C++,而Java則為:

面向對象編程在軟件履行效力上相對沒有任何優勢,它的重要目標是便利法式員組織和治理代碼,疾速梳理編程思緒,帶來編程思惟上的改革。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved