第1章

Similar documents
untitled

CC213

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

3.1 num = 3 ch = 'C' 2

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

Microsoft Word - 01.DOC

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

第1章

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点


untitled

《大话设计模式》第一章

javaexample-02.pdf

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

Microsoft Word - 投影片ch03

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

第1章

電機工程系認可證照清單 /7/1

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

Microsoft PowerPoint - 14Threads.ppt

新版 明解C++入門編


<4D F736F F D B0EABB79A4E5B8D5C344BBBCB065AAA9>


康體藝術

chp6.ppt

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

JavaIO.PDF

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Chapter 9: Objects and Classes

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

新・明解C言語入門編『索引』

EJB-Programming-4-cn.doc

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

下 篇 男 性 酷 刑 太 監 考 第 四 章 太 監 名 目 何 其 多 第 五 章 太 監 恢 復 性 機 能

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

Microsoft PowerPoint - VB14.ppt

使用MapReduce读取XML文件

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

JAVA String常用APi

Microsoft Word - JAVA Programming Language Homework I ans

FY.DOC

untitled

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

概述

Microsoft PowerPoint - ch1.pptx

Microsoft Word - CPE考生使用手冊 docx

Java

全国计算机技术与软件专业技术资格(水平)考试

基于CDIO一体化理念的课程教学大纲设计

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

软件工程文档编制

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

運算子多載 Operator Overloading

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

Microsoft PowerPoint - Chap03.ppt [相容模式]

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

Microsoft PowerPoint - C-Ch11.ppt

The Embedded computing platform

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 是 有 别 于 C++,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 像 Java 这 样 纯 粹 的 面 向 对 象 语 言 中, 所 有

RxJava

c_cpp

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 与 C++ 不 同,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 Java 世 界 中, 所 有 事 物 都 是 Object 1. 通 过

第1章

Microsoft PowerPoint - course2.ppt

第一章 Java简介与开发环境的搭建

CC213

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

TW簡單操作手冊更新版.indd

Microsoft PowerPoint - SE7ch03.ppt

Transcription:

第 15 章 標準類別 1

本章提要 15.1 前言 15.2 基本資料類別介紹 15.3 Integer 類別 15.4 Double 類別 15.5 Float 類別 Long 類別 Short 類別 15.6 數學相關類別 Math 15.7 後記 2

15.1 前言 不同基本資料型別可以互相轉換, 但也只予許由小轉大的情況, 例如 1. byte 轉為 short int long float double 2. short 轉為 int long float double 3. int 轉為 long float double 或利用強制型別轉換, 將資料型別由大轉小, 例如 1. double d = 95.57 2. int v = (int) d 3

15.1 前言 但如果我們要將數值資料轉換成字串, 或是字串資料轉成數值時, 該如何做呢? 如想利用鍵盤輸入一個數值到電腦中, 並計算該數值的開根號答案, 要怎麼做呢? 有什麼方法可以將一個十進制的數值直接以二進制的方式表示出來呢? 基本資料類別 4

15.1 前言 基本資料類別 可以讓我們將資料以 integer double float long 等型別的值做輸出基本資料類別除了提供輸出函式外, 還有那些功能呢? Math 類別提供了許多數學運算的函式到底有那些好用的工具呢? 5

15.2 基本資料類別介紹 當需要將 基本資料型別, 如 int float 等, 轉換成字串 其他基本資料型別, 或轉換成其他物件時, 該怎麼做呢? 我們必需先將 基本資料型別 做包裝的動作, 將它包裝成我們想要的資料格式該怎麼包裝呢? 在 java.lang 套件中提供了包裝基本資料型別的工具, 稱之為 基本資料類別 6

15.2 基本資料類別介紹 基本資料類別, 包括 Short Integer Float Long Double Boolean Byte 7

15.2 基本資料類別介紹 假設需要的格式是 double, 而原本的資料 ivalue 是 int 時, 可以利用 Double 類別將原本的 int 包裝起來, 接著就可以利用 Double 類別提供的函式, 將原本的資料以 double 型式做輸出 ivalue 在包裝完後是 Double 的型別, 但本質上還是 int 的型別 8

15.2 基本資料類別介紹 利用 基本資料類別 來包裝 基本資料型別 包裝後的基本資料型別即成為一個物件, 這個物件就有各式各樣的函式工具可以對裡面的基本資料型別做動作 9

15.2 基本資料類別介紹 項次 1 2 Integer 類別 bytevalue() shortvalue() intvalue() floatvalue() longvalue() doublevalue() Integer 建構元 Integer(int value) 產生一個 Integer 物件, 初始值為 value Integer(String s) 產生一個 Integer 物件, 初始值為字串 s 10

範例程式 1 Integer 類別 9 public static void main(string args[]){ 10 int iv = 987654321; 11 Integer ivalue = new Integer(iv); 12 System.out.println("byte 型別 = " + ivalue.bytevalue()); 13 System.out.println("short 型別 = " + ivalue.shortvalue()); 14 System.out.println("int 型別 = " + ivalue.intvalue()); 15 System.out.println("float 型別 = " + ivalue.floatvalue()); 16 System.out.println("long 型別 = " + ivalue.longvalue()); 17 System.out.println("double 型別 = " + ivalue.doublevalue()); 18 } 11

執行結果 byte 型別 = -79 short 型別 = 26801 int 型別 = 987654321 float 型別 = 9.8765434E8 long 型別 = 987654321 double 型別 = 9.87654321E8 12

範例程式 2 Integer 類別之應用 10 String s = "132"; 11 int is = Integer.parseInt(s); 12 int is5 = Integer.parseInt(s, 5); 13 System.out.println(s+" 轉成 5 進制 :"+is5); 14 int is8 = Integer.parseInt(s, 8); 15 System.out.println(s+" 轉成 8 進制 :"+is8); 17 System.out.println("\n"+s+" 轉成 2 進制字串 : + Integer.toBinaryString(is)); 18 System.out.println(s+" 轉成 6 進制字串 :" + Integer.toString(is, 6)); 19 System.out.println(s+" 轉成 16 進制字串 :" + Integer.toHexString(is)); 13

21 String s2 = "1453"; 22 Integer Is2 = Integer.valueOf(s2); 23 System.out.println("\n"+s2+" 轉成整數物件 :"+Is2); 24 Integer Is29 = Integer.valueOf(s2, 9); 25 System.out.println(s2+" 轉成 9 進制整數物件 : +Is29); 26 System.out.println("\n"+Is2+" 與 1453 比較 = " + Is2.compareTo(new Integer(1453))); 27 System.out.println(Is29+" 與 1453 比較 = " + Is29.compareTo(new Integer(1453))); 14

執行結果 132 轉成 5 進制 :42 132 轉成 8 進制 :90 132 轉成 2 進制字串 :10000100 132 轉成 6 進制字串 :340 132 轉成 16 進制字串 :84 1453 轉成整數物件 :1453 1453 轉成 9 進制整數物件 :1101 1453 與 1453 比較 = 0 1101 與 1453 比較 = -1 15

項次 Double 建構元 15.4 Double 類別 Double 建構元 1 Double(int value) 產生一個 Double 物件, 初始值為 value 2 Double(String s) 產生一個 Double 物件, 初始值為字串 s bytevalue() shortvalue() intvalue() floatvalue() longvalue() doublevalue() 16

15.5 Float 類別 Long 類別 Short 類別 利用 tostring() 函式輸出字串, 及利用 valueof() 輸出相對應的類別物件 基本資料型別與基本資料類別的對應關係為 : byte Byte short Short int Integer float Float long Long double Double 17

15.6 數學相關類別 Math Java 提供了相當多的數學工具, 讓我們不用一一去撰寫這些運算子, 而這些工具就存放在 Java 的數學類別庫 Math 類別中 項次 1 E 自然對數 2 PI 圓周率 Math 變數 18

範例程式 3 Math 類別之應用 13 System.out.println(" 輸入半徑 :"); 14 15 try{ 16 BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); 17 String s = bfr.readline(); 18 int r = Integer.parseInt(s); 19 System.out.println(" 圓的周長為 :"+2*r*Math.PI); 21 System.out.println("\n 輸入弳度 :"); 22 double deg = Double.parseDouble(bfr.readLine()); 23 double ang = Math.toRadians(deg); 24 System.out.println(" 弧度表示 :"+ang); 19

25 System.out.println(" 正弦值 :"+Math.sin(ang)); 26 System.out.println(" 餘弦值 :"+Math.cos(ang)); 27 System.out.println(" 正切值 :"+Math.tan(ang)); 29 double v1 = 89.63, v2 = -15.14; 30 System.out.println("\n 大於 "+v1+" 的最小整數 ="+Math.ceil(v1)); 31 System.out.println(" 大於 "+v2+" 的最小整數 ="+Math.ceil(v2)); 32 System.out.println(" 小於 "+v1+" 的最大整數 ="+Math.floor(v1)); 33 System.out.println(" 小於 "+v2+" 的最大整數 ="+Math.floor(v2)); 34 System.out.println(" 最靠近 "+v1+" 的整數為 ="+Math.rint(v1)); 35 System.out.println(" 最靠近 "+v2+" 的 long 為 ="+Math.round(v2)); 36 System.out.println(" 二者最大數為 :"+Math.max(v1, v2)); 20

38 System.out.println("\nlog 以 2 為底的 256 為 = " + Math.log(256)/Math.log(2)); 39 System.out.println("2 的 15 次方為 = "+Math.pow(2, 15)); 執行結果 自然對數為 :2.718281828459045 圓周率為 :3.141592653589793 輸入半徑 :10 圓的周長為 :62.83185307179586 輸入角度 :60 弧度表示 :1.0471975511965976 正弦值 :0.8660254037844386 餘弦值 :0.5000000000000001 正切值 :1.7320508075688767 大於 89.63 的最小整數 =90.0 大於 -15.14 的最小整數 =-15.0 小於 89.63 的最大整數 =89.0 小於 -15.14 的最大整數 =-16.0 最靠近 89.63 的整數為 =90.0 最靠近 -15.14 的 long 為 =-15 二者最大數為 :89.63 log 以 2 為底的 256 為 = 8.0 2 的 15 次方為 = 32768.0 21

範例程式 4 random 函式之應用, 猜拳遊戲 13 BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in)); 14 int c = Integer.parseInt(bfr.readLine()); 15 while (c!= -1){ 16 int computer = (int) (Math.random()*10) % 3; 17 switch (c){ 18 case 0: 19 switch (computer){ 20 case 0: 21 System.out.println(" 電腦出剪刀, 平手 "); 22 break; 23 case 1: 24 System.out.println(" 電腦出石頭, 你輸了 "); 25 break; 26 case 2: 27 System.out.println(" 電腦出布, 你贏了 "); 28 break; 29 } 30 break; 22

執行結果 請輸入你的選擇 (0. 剪刀 1. 石頭 2. 布 -1. 離開 ):2 電腦出布, 平手請輸入你的選擇 (0. 剪刀 1. 石頭 2. 布 -1. 離開 ):0 電腦出石頭, 你輸了請輸入你的選擇 (0. 剪刀 1. 石頭 2. 布 -1. 離開 ):1 電腦出布, 你輸了請輸入你的選擇 (0. 剪刀 1. 石頭 2. 布 -1. 離開 ):3 請輸入你的選擇 (0. 剪刀 1. 石頭 2. 布 -1. 離開 ):0 電腦出剪刀, 平手請輸入你的選擇 (0. 剪刀 1. 石頭 2. 布 -1. 離開 ):-1 遊戲結束! 23

15.7 後記 資料格式轉換的基本資料類別 Integer Double Float Short Byte 數學工具類別 Math 24