當前位置:首頁 » 編程語言 » java編程

java編程

發布時間: 2022-02-07 12:22:56

java編程

利用除法和取余操作分別計算數位上的值
百位上的:153/100=1
十位上的:(153%100)/10=5
個位上的:(153%100)%10=3

Ⅱ Java編程

使用同樣的方法名,但是傳遞的參數不同,根據不同的參數實現不同的算數

Ⅲ java編程是什麼

Java(計算機編程語言),深入了解Java開發?
Java語言是SUN(Stanford University Network,斯坦福大學網路公司)公司1995年推出的一門高級編程語言,起初主要應用在小型消費電子產品上,後來隨著互聯網的興起,Java語言迅速崛起(Java applet 可以在瀏覽器中運行),成為大型互聯網項目的首選語言。
從首次發布開始,Java就躍到了 Internet 編程的前沿。後續的每一個版本都進一步鞏固了這一地位。如今,Java依然是開發基於 Web 的應用程序的最佳選擇。此外,Java還是智能手機變革的推手,Android 編程採用的就是Java語言。
Java可分為3個體系,即JavaSE、JavaEE 和JavaME。下面千鋒重慶Java的小編簡單介紹下這3個體系。
1、JavaSE
JavaSE(JavaPlatform Standard Edition,Java平台標准版)以前稱為J2SE,它允許開發和部署在桌面、伺服器、嵌入式環境和實時環境中使用的Java應用程序。JavaSE包含了支持JavaWeb服務開發的類,並為JavaEE 提供基礎,如Java語言基礎、JDBC操作、I/O 操作、網路通信以及多線程等技術。圖所示為JavaSE的體系結構。

2、JavaEE
JavaEE(JavaPlatform Enterprise Edition,Java平台企業版)以前稱為J2EE。企業版本幫助開發和部署可移植、健壯、可伸縮且安全的伺服器端Java應用程序。JavaEE是在JavaSE基礎上構建的,它提供Web服務、組件模型、管理和通信API,可以用來實現企業級的面向服務體系結構(Service Oriented Architecture,SOA)和Web 2.0應用程序。
3、JavaME
JavaME(JavaPlatform Micro Edition,Java平台微型版)以前稱為 J2ME,也叫 K-JAVA。JavaME 為在移動設備和嵌入式設備(比如手機、PDA、電視機頂盒和列印機)上運行的應用程序提供一個健壯且靈活的環境。
JavaME包括靈活的用戶界面、健壯的安全模型、豐富的內置網路協議以及對可以動態下載的聯網和離線應用程序。基於JavaME 規范的應用程序 只需編寫一次就可以用於許多設備,而且可以利用每個設備的本機功能。

Ⅳ Java編程

import java.util.Arrays;
import java.util.Comparator;
public class Nate {

public static void main(String[] args) {
String[] strs = {"abc", "yb", "xiaoqianga", "laifu", "wangcai", "oye" };
Arrays.sort (strs, new Comparator<String> (){

public int compare ( String o1, String o2 ){
if (o1.length () > o2.length ())
{
return 1;
}
else if (o1.length () < o2.length ())
{
return -1;
}
else{
return 0;
}
}
});
System.out.println (Arrays.toString(strs));
}

}

Ⅳ java編程

作用你可以看我個你提供的資料;不按虛擬機是不行的.
一、 什麼是Java虛擬機
Java虛擬機是一個想像中的機器,在實際的計算機上通過軟體模擬來實現。Java虛擬機有自己想像中的硬體,如處理器、堆棧、寄存器等,還具有相應的指令系統。

1.為什麼要使用Java虛擬機?

Java語言的一個非常重要的特點就是與平台的無關性。而使用Java虛擬機是實現這一特點的關鍵。一般的高級語言如果要在不同的平台上運行, 至少需要編譯成不同的目標代碼。而引入Java語言虛擬機後,Java語言在不同平台上運行時不需要重新編譯.

Java虛擬機屏蔽了與具體平台相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(位元組碼),就可以在多種平台上不加修改地運行。Java虛擬機在執行位元組碼時,把位元組碼解釋成具體平台上的機器指令執行。

2.誰需要了解Java虛擬機

Java虛擬機是Java語言底層實現的基礎,對Java語言感興趣的人都應對Java虛擬機有個大概的了解。這有助於理解Java語言的一些性質,也有助於使用Java語言。
對於要在特定平台上實現Java虛擬機的軟體人員,Java語言的編譯器作者以及要用硬體晶元實現Java虛擬機的人來說,則必須深刻理解Java虛擬機的規范。
另外,如果你想擴展 Java語言,或是把其它語言編譯成Java語言的位元組碼,你也需要深入地了解Java虛擬機。
3.Java虛擬機支持的數據類型

Java虛擬機支持Java語言的基本數據類型如下:

byte://1位元組有符號整數的補碼 short://2位元組有符號整數的補碼 int://4位元組有符號整數的補碼 long://8位元組有符號整數的補碼 float://4位元組IEEE754單精度浮點數 double://8位元組IEEE754雙精度浮點數 char://2位元組無符號Unicode字元

幾乎所有的Java類型檢查都是在編譯時完成的。上面列出的原始數據類型的數據在 Java執行時不需要用硬體標記。操作這些原始數據類型數據的位元組碼(指令)本身就已經指出了操作數的數據類型,例如iadd、ladd、fadd和dadd指令都是把兩個數相加,其操作數類型特別是int、long、float和double。
虛擬機沒有給boolean(布爾)類型設置單獨的指令。boolean型的數據是由integer指令, 包括integer返回來處理的。boolean型的數組則是用byte數組來處理的。
虛擬機使用IEEE754格式的浮點數。不支持IEEE格式的較舊的計算機,在運行Java數值計算程序時,可能會非常慢。
虛擬機支持的其它數據類型包括:

object//對一個Javaobject(對象)的4位元組引用 returnAddress//4位元組,用於jsr/ret/jsr-w/ret-w指令

注:Java數組被當作object處理。
虛擬機的規范對於object內部的結構沒有任何特殊的要求。在Sun公司的實現中,對 object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向 該object的數據。
用Java虛擬機的位元組碼表示的程序應該遵守類型規定。Java虛擬機的實現應拒絕執行違反了類型規定的位元組碼程序。
Java虛擬機由於位元組碼定義的限制似乎只能運行於32位地址空間的機器上。但是可以創建一個Java虛擬機,它自動地把位元組碼轉換成64位的形式。
從Java虛擬機支持的數據類型可以看出,Java對數據類型的內部格式進行了嚴格規定,這樣使得各種Java虛擬機的實現對數據的解釋是相同的,從而保證了Java的與平台無關性和可移植性。
二、 Java虛擬機體系結構

Java虛擬機由五個部分組成:一組指令集、一組寄存器、一個棧、一個無用單元收集堆(Garbage-collected-heap)、一個方法區域。這五部分是Java虛擬機的邏輯成份,不依賴 任何實現技術或組織方式,但它們的功能必須在真實機器上以某種方式實現。

Java指令集
Java虛擬機支持大約248個位元組碼。每個位元組碼執行一種基本的CPU運算,例如,把一個整數加到寄存器,子程序轉移等。Java指令集相當於Java程序的匯編語言。
Java指令集中的指令包含一個單位元組的操作符,用於指定要執行的操作,還有0個或多個操作數,提供操作所需的參數或數據。許多指令沒有操作數,僅由一個單位元組的操作符構成。虛擬機的內層循環的執行過程如下:
do{ 取一個操作符位元組; 根據操作符的值執行一個動作; }while(程序未結束)

由於指令系統的簡單性,使得虛擬機執行的過程十分簡單,從而有利於提高執行的效率。
指令中操作數的數量和大小是由操作符決定的。如果操作數比一個位元組大,那麼它存儲的順序是高位位元組優先。例如,一個16位的參數存放時佔用兩個位元組,其值為: 第一個位元組*256+第二個位元組
位元組碼指令流一般只是位元組對齊的。指令tableswitch和lookup是例外,在這兩條指令內部 要求強制的4位元組邊界對齊。

寄存器
Java虛擬機的寄存器用於保存機器的運行狀態,與微處理器中的某些專用寄存器類似。 Java虛擬機的寄存器有四種:
pc:Java程序計數器。 optop:指向操作數棧頂端的指針。 frame:指向當前執行方法的執行環境的指針。 vars:指向當前執行方法的局部變數區第一個變數的指針。

Java虛擬機
Java虛擬機是棧式的,它不定義或使用寄存器來傳遞或接受參數,其目的是為了保證指令集的簡潔性和實現時的高效性(特別是對於寄存器數目不多的處理器)。所有寄存器都是32位的。


Java虛擬機的棧有三個區域:局部變數區、運行環境區、操作數區。
局部變數區
每個Java方法使用一個固定大小的局部變數集。它們按照與vars寄存器的字偏移量來定址。局部變數都是32位的。長整數和雙精度浮點數占據了兩個局部變數的空間,卻按照第一個局部變數的索引來定址。(例如,一個具有索引n的局部變數,如果是一個雙精度浮點數,那麼它實際占據了索引 n和n+1所代表的存儲空間。)虛擬機規范並不要求在局部變數中的64位的值是64位對齊的虛擬機提供了把局部變數中的值裝載到操作數棧的指令,也提供了把操作數棧中的值寫入局部變數的指令。
運行環境區
在運行環境中包含的信息用於動態鏈接,正常的方法返回以及異常傳播。
動態鏈接
運行環境包括對指向當前類和當前方法的解釋器符號表的指針,用於支持方法代碼的動態鏈接。方法的class文件代碼在引用要調用的方法和要訪問的變數時使用符號。動態鏈接把符號形式的方法調用翻譯成實際方法調用,裝載必要的類以解釋還沒有定義的符號, 並把變數訪問翻譯成與這些變數運行時的存儲結構相應的偏移地址。動態鏈接方法和變數使得方法中使用的其它類的變化不會影響到本程序的代碼。
正常的方法返回
如果當前方法正常地結束了,在執行了一條具有正確類型的返回指令時,調用的方法會得到一個返回值。
執行環境在正常返回的情況下用於恢復調用者的寄存器,並把調用者的程序計數器增加一個恰當的數值,以跳過已執行過的方法調用指令,然後在調用者的執行環境中繼續執行下去。

異常和錯誤傳播
異常情況在Java中被稱作Error(錯誤)或Exception(異常),是Throwable類的子類,在程序中出錯的原因是:①動態鏈接錯,如無法找到所需的class文件。②運行時錯,如對一個空指針的引用

程序使用了throw語句。
當異常發生時,Java虛擬機採取如下措施:
檢查與當前方法相聯系的catch子句表。每個catch子句包含其有效指令范圍,能夠處理的異常類型,以及處理異常的代碼塊地址。
與異常相匹配的catch子句應該符合下面的條件:造成異常的指令在其指令范圍之內 ,發生的異常類型是其能處理的異常類型的子類型。如果找到了匹配的catch子句,那麼系統轉移到指定的異常處理塊處執行;如果沒有找到異常處理塊,重復尋找匹配的catch子句的過程,直到當前方法的所有嵌套的catch子句都被檢查過。
由於虛擬機從第一個匹配的catch子句處繼續執行,所以catch子句表中的順序是很重要的。因為Java代碼是結構化的,因此總可以把某個方法的所有的異常處理器都按序排列到一個表中,對任意可能的程序計數器的值,都可以用線性的順序找到合適的異常處理塊,以處理在該程序計數器值下發生的異常情況。
如果找不到匹配的catch子句,那麼當前方法得到一個"未截獲異常"的結果並返回到當前方法的調用者,好像異常剛剛在其調用者中發生一樣。如果在調用者中仍然沒有找到相應的異常處理,那麼系 統將調用一個預設的異常處理塊。
操作數棧區
機器指令只從操作數棧中取操作數,對它們進行操作,並把結果返回到棧中。選擇棧結構的原因是:在只有少量寄存器或非通用寄存器的機器(如Intel486)上,也能夠高效地模擬虛擬機的行為。
操作數棧是32位的。它用於給方法傳遞參數,並從方法接收結果,也用於支持操作的參數,並保存操作的結果。
例如,iadd指令將兩個整數相加。相加的兩個整數應該是操作數棧頂的兩個字。這兩個字是由先前的指令壓進堆棧的。這兩個整數將從堆棧彈出、相加,並把結果壓回到操作數棧中。每個原始數據類型都有專門的指令對它們進行必須的操作。每個操作數在棧中需要一個存儲位置,除了long和double型,它們需要兩個位置。
操作數只能被適用於其類型的操作符所操作。例如,壓入兩個int類型的數,如果把它們當作是一個long類型的數則是非法的。在Sun的虛擬機實現中,這個限制由位元組碼驗證器強制實行。但是,有少數操作(操作符pe和swap),用於對運行時數據區進行操作時是不考慮類型的。
無用單元收集堆
Java的堆是一個運行時數據區,類的實例(對象)從中分配空間。Java語言具有無用單元收集能力:它不給程序員顯式釋放對象的能力。Java不規定具體使用的無用單元收集演算法,可以根據系統的需求使用各種各樣的演算法。

方法區
方法區與傳統語言中的編譯後代碼或是Unix進程中的正文段類似。它保存方法代碼 (編譯後的java代碼)和符號表。在當前的Java實現中,方法代碼不包括在無用單元收集堆中,但計劃在將來的版本中實現。每個類文件包含了一個Java類或一個Java界面的編譯後的代碼。可以說類文件是 Java語言的執行代碼文件。為了保證類文件的平台無關性,Java虛擬機規范中對類文件的格式也作了詳細的說明。其具體細節請參考Sun公司的Java虛擬機規范
三、 Java類文件(.class文件)

每個類文件包含了一個Java類或一個Java界面的編譯後的代碼。可以說類文件是Java語言的執行代碼文件。為了保證類文件的平台無關性,Java虛擬機規范中對類文件的格式也作了詳細的說明。其具體細節請參考Sun公司的Java虛擬機規范。

四、 Java晶元

由於Java語言是解釋型語言,在一般的通用處理器上其運行速度比起編譯型語言要慢很多。Sun公司為了進一步推廣Java的應用,推出了Java晶元。這些晶元可以說是Java虛擬機的硬體實現。與通用晶元和解釋器構成的虛擬機不同,Java晶元可以直接執行位元組碼,也就是說,位元組碼就是 Java晶元的指令集。這種用硬體實現的虛擬機當然要比軟體模擬的虛擬機的速度要快得多。
Sun公司計劃推出的Java晶元有三種:picoJava,mi-croJava和ultraJava。

picoJava是一個很小的Java內核晶元,其矽片面積只有25mm2。Sun公司准備向其它公司轉讓,以便其它公司可以定製自己的Java晶元,其低端產品的售價估計不到25美元。
microJava是基於picoJava的微控制器晶元,其晶元面積約為50mm2,用於通信設備和其它嵌入式控制設備。Sun公司希望Java晶元可以成為推動Java發展的主要技術之一。

Ⅵ JAVA編程

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
private int[] datas = new int[10];
public Test(){
this.setSize(200, 200);
this.setResizable(false);
JPanel panel1 = new JPanel(), panel2 = new JPanel();
JPanel panel3 = new JPanel(), panel4 = new JPanel();
panel2.setLayout(new GridLayout(2, 1));
this.add(panel1);
this.add(panel2, BorderLayout.SOUTH);
panel2.add(panel3);
panel2.add(panel4);
panel1.setLayout(new GridLayout(5, 2));
for(int i = 0; i < datas.length; i++)
datas[i] = (int)(Math.random()*100);
sort(datas);
for(int i = 0; i < datas.length; i++)
panel1.add(new JLabel("位置" + i + ": " + datas[i]));
final JLabel result = new JLabel("");
panel3.add(result);
final JTextField text = new JTextField(5);
JButton button = new JButton("查找");
panel4.add(text);
panel4.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
try {
int n = Integer.parseInt(text.getText());
int m = findNumber(datas, n);
if(m < 0) result.setText("No such number!");
else result.setText("位置:" + m + "找到了 " + n);
} catch(Exception e) {
JOptionPane.showMessageDialog(Test.this, "請輸入要查找的整數!");
}
}
});
}
public static void main(String[] args){ new Test().setVisible(true); }
public static void sort(int[] dat){
for(int i=0; i<dat.length; i++)
for(int j=i; j<dat.length; j++)
if(dat[i]>dat[j]){
dat[i]^=dat[j];
dat[j]^=dat[i];
dat[i]^=dat[j];
}
}
public static int findNumber(int[] dat, int x){
int min = 0, max = dat.length-1, mid = (max + min)/2;
while(x!=dat[mid]&&min<=max){
if(dat[mid]>x) max = mid - 1;
else min = mid + 1;
mid = (max+min)/2;
}
return dat[mid]==x?mid:-1;
}
}

Ⅶ JAVA編程

packageorg.yitianlulongji;

/**
*JAVA編程編寫一個JAVA程序,輸出1~100之間所有即可以被3整除,又可以被7整除的數,並計算它們的和。
*
*@author
*
*/
publicclassTest{
publicstaticvoidmain(String[]args){
getSums();
//getSums1();
}

publicstaticvoidgetSums(){
intsums=0;
for(inti=1;i<=100;i++){//1~100之間
if(i%3==0&&i%7==0){//即可以被3整除,又可以被7整除的數
//System.out.println(i);//輸出符合的內容
sums+=i;//sums=sums+i;//計算它們的和
}
}
System.out.print(sums);

}

publicstaticvoidgetSums1(){

intsums=0;
intconstant=21;//常量21,因為3和7的最小公倍數為21
intc=constant;
while(true){
//System.out.println("sums="+sums+",c="+c);
sums+=c;
c=c+constant;
if(c>100){
break;
}

}
System.out.print(sums);
}
}

Ⅷ java編程是什麼

Java是一種可以撰寫跨平台應用程序的、面向對象的程序設計語言。

簡單說,Java就是一種語言,不過是一種針對jvm的語言,Java編譯後是位元組碼,而jvm會把這些位元組碼解釋成機器碼,然後做出相應的動作。

Java是計算機和我們的溝通語言,計算機可以懂Java這門語言。當然,你學會了Java,你也會這門語言,你就可以和計算機溝通啦!

比如說,你對你女朋友說「給我倒洗腳水去!」,然後你女朋友聽到了這句話,知道自己該幹嘛了,就去給你倒洗腳水了(現實中大部分不是這樣,哈哈)。

那麼你要是和計算機溝通,想讓計算機給我們做一件事情,總不能說「喂,計算機,給我倒洗腳水去」,這個計算機還真聽不懂,那咋辦?

當然是得使用計算機能夠明白的語言與它溝通啦!那是啥,Java就是啊,你使用Java是可以和計算機溝通的,當然這里的溝通是類比我們人與人之間的說法,其實對於計算機而言,准確的應該是我們給計算機下達指令,計算機收到我們的指令去做相應的事情。

怎麼樣,啥是Java,明白那麼一丟丟了吧!

Java是一門語言,記住了吧,這個語言是用於計算機的,我們使用Java可以和計算機進行交流,我們寫一段Java代碼,計算機就知道我們想幹啥,當然前提是你寫的是正常的代碼,所以Java可以叫做計算機語言。

如果想學習這門語言,可私聊找我要學習資料哦~免費提供的喲~

Ⅸ java編程

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;

public class Calucator extends JFrame {

private JTextField tf;
private JPanel panel1, panel2, panel3, panel4;
private JMenuBar myBar;
private JMenu menu1, menu2, menu3;
private JMenuItem editItem1, editItem2, help1, help2, help3;
private JRadioButtonMenuItem seeItem1, seeItem2;
private JCheckBoxMenuItem seeItem3;
private ButtonGroup bgb;
private String back;
private boolean IfResult = true, falg = false;
private String oper = "=";
private double result = 0;
private Num numActionListener;
private DecimalFormat df;

public Calucator(){
super("計算器");

df = new DecimalFormat("0.#######");

this.setLayout(new BorderLayout(10, 5));
panel1 = new JPanel(new GridLayout(1, 3, 10, 10));
panel2 = new JPanel(new GridLayout(4, 5, 5, 5));
panel3 = new JPanel(new GridLayout(5, 1, 5, 5));
panel4 = new JPanel(new BorderLayout(5, 5));

myBar = new JMenuBar();
menu1 = new JMenu("編輯");
menu2 = new JMenu("查看");
menu3 = new JMenu("幫助");

menu1.setFont(new Font("宋體", Font.PLAIN, 12));
menu2.setFont(new Font("宋體", Font.PLAIN, 12));
menu3.setFont(new Font("宋體", Font.PLAIN, 12));

editItem1 = new JMenuItem("復制");
editItem2 = new JMenuItem("粘貼");

seeItem1 = new JRadioButtonMenuItem("科學型");
seeItem2 = new JRadioButtonMenuItem("標准型");
seeItem3 = new JCheckBoxMenuItem("數字分組");

help1 = new JMenuItem("幫助主題");
help2 = new JMenuItem("關於計算器(A)");

bgb = new ButtonGroup();

menu1.add(editItem1);
menu1.add(editItem2);

menu2.add(seeItem1);
menu2.add(seeItem2);
menu2.addSeparator();
menu2.add(seeItem3);

menu3.add(help1);
menu3.add(help2);

myBar.add(menu1);
myBar.add(menu2);
myBar.add(menu3);
this.setJMenuBar(myBar);

numActionListener = new Num();

tf = new JTextField();
tf.setEditable(false);
tf.setBackground(Color.white);
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setText("0");
tf.setBorder(BorderFactory.createLoweredBevelBorder());
init();

}

private void init(){

addButton(panel1, "Backspace", new Clear(), Color.red);
addButton(panel1, "CE", null, Color.red);
addButton(panel1, "C", new Clear(), Color.red);

addButton(panel2, "7", numActionListener, Color.blue);
addButton(panel2, "8", numActionListener, Color.blue);
addButton(panel2, "9", numActionListener, Color.blue);
addButton(panel2, "/", new Signs(), Color.red);
addButton(panel2, "sqrt", new Signs(), Color.blue);

addButton(panel2, "4", numActionListener, Color.blue);
addButton(panel2, "5", numActionListener, Color.blue);
addButton(panel2, "6", numActionListener, Color.blue);
addButton(panel2, "*", new Signs(), Color.red);
addButton(panel2, "%", new Signs(), Color.blue);

addButton(panel2, "1", numActionListener, Color.blue);
addButton(panel2, "2", numActionListener, Color.blue);
addButton(panel2, "3", numActionListener, Color.blue);
addButton(panel2, "-", new Signs(), Color.red);
addButton(panel2, "1/x", new Signs(), Color.blue);

addButton(panel2, "0", numActionListener, Color.blue);
addButton(panel2, "-/+", new Clear(), Color.blue);
addButton(panel2, ".", new Dot(), Color.blue);
addButton(panel2, "+", new Signs(), Color.red);
addButton(panel2, "=", new Signs(), Color.red);

JButton btns = new JButton("calucator");
btns.setBorder(BorderFactory.createLoweredBevelBorder());
btns.setEnabled(false);
btns.setPreferredSize(new Dimension(20, 20));

panel3.add(btns);
addButton(panel3, "MC", null, Color.red);
addButton(panel3, "MR", null, Color.red);
addButton(panel3, "MS", null, Color.red);
addButton(panel3, "M+", null, Color.red);

panel4.add(panel1, BorderLayout.NORTH);
panel4.add(panel2, BorderLayout.CENTER);
this.add(tf, BorderLayout.NORTH);
this.add(panel3, BorderLayout.WEST);
this.add(panel4);

pack();
this.setResizable(false);
this.setLocation(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private void addButton(JPanel panel, String name, ActionListener action, Color color){
JButton bt = new JButton(name);
panel.add(bt);
bt.setForeground(color);
bt.addActionListener(action);
}

public static void main(String[] args) {

new Calucator().setVisible(true);

}

private void getResult (double x){
System.out.println("result"+result+" "+"x"+x);
if(oper == "+"){
result += x;
}else if(oper == "-"){
result -= x;
}else if(oper == "*"){
result *= x;
}else if(oper == "/"){
result /= x;
}else if(oper == "="){
result = x;
}
System.out.println("result"+result+" "+"x"+x);
tf.setText(df.format(result));
System.out.println(df.format(result));
}

class Signs implements ActionListener{

public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(str.equals("sqrt")){
double i = Double.parseDouble(tf.getText());

if(i>0){
tf.setText(String.valueOf(df.format(Math.sqrt(i))));
}else{
tf.setText("負數不能開平方根");
}

}else if(str.equals("%")){
tf.setText(df.format(Double.parseDouble(tf.getText()) / 100));
}else if(str.equals("1/x")){

if(Double.parseDouble(tf.getText()) == 0){
tf.setText("除數不能為零");
}else{
tf.setText(df.format(1 / Double.parseDouble(tf.getText())));
}

}else{
if(falg){
IfResult = false;
}
if(IfResult){
oper = str;
System.out.println(oper);
}else{
getResult(Double.parseDouble(tf.getText()));
oper = str;
IfResult = true;
}
}
}
}

class Clear implements ActionListener{

public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(str == "C"){
tf.setText("0");
IfResult = true;
result = 0;
}else if(str == "-/+"){
double i = 0 - Double.parseDouble(tf.getText().trim());
tf.setText(df.format(i));
}else if(str == "Backspace"){
if(Double.parseDouble(tf.getText()) > 0){

if(tf.getText().length() > 1){
tf.setText(tf.getText().substring(0, tf.getText().length() - 1));
}else{
tf.setText("0");
IfResult = true;
}

}else{
if(tf.getText().length() > 2){
tf.setText(tf.getText().substring(0, tf.getText().length() - 1));
}else{
tf.setText("0");
IfResult = true;
}
}
}

}
}

class Num implements ActionListener{

public void actionPerformed(ActionEvent e) {
String srt = e.getActionCommand();
if(IfResult){
tf.setText("");
IfResult = false;
}
tf.setText(tf.getText().trim() + srt);
if(tf.getText().equals("0")){
tf.setText("0");
IfResult = true;
falg = true;
}
}

}

class Dot implements ActionListener{

public void actionPerformed(ActionEvent e) {
IfResult = false;
if(tf.getText().trim().indexOf(".") == -1){
tf.setText(tf.getText() + ".");
}

}

}

}

Ⅹ java編寫程序

你這要求都說的這么混亂,還是放棄編程把

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:624
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:355
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:69
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:294
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:786
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:336
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:201
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:796
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:353
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:581