Các lp bao ki u nguyên th y (Wrapper class)

Một phần của tài liệu Lập trình hướng đối tượng (Trang 42 - 47)

- void reverse()

2. Các lp bao ki u nguyên th y (Wrapper class)

Các giá tr nguyên th y không ph i là i t ng trong Java. có th thao tác c trên các giá tr nguyên th y (giá tr s , kí t và logic) thì gói java.lang cung c p các l p bao gói (Wrapper) cho t ng ki u d li u nguyên th y (g i t t là l p bao). Các l p bao có

nh ng c tính chung sau:

Các toán t t o l p chung. Các l p bao (tr l p Character ch có m t toán t t o l p) u có hai toán t t o l p:

Toán t t o l p s d ng giá tr nguyên th y t o ra i t ng t ng ng

Character charObj = new Character(‘a’); Boolean boolObj = new Boolean(true); Integer intObj = new Integer(2002); Float floatObj = new Float(3.14F); Double doubleObj = new Double(3.14);

Toán t th hai: chuy n các i t ng l p String bi u di n cho các giá tr nguyên th y v các l p t ng ng. Các toán t này s ném ra ngo i l NumberFormatException khi giá tr String truy n vào hàm t o không h p l .

Boolean boolObj =newBoolean(“true”); Integer intObj =newInteger(“2002”);

Float floatObj =newFloat(“3.14F”); Double doubleObj=newDouble(“3.14”);

Có các hàm ti n ích chung: valueOf(String s), toString(), typeValue(), equals().

M i l p (tr l p Character) u nh ngh a hàm staticvalueOf(String s) tr l i i ng t ng ng. Các hàm này ném ra ngo i l NumberFormatException khi giá tr String truy n vào ph ng th c không h p l .

Boolean boolObj = Boolean.valueOf(“true”); Integer intObj = Integer.valueOf(“2002”); Float floatObj = Float.valueOf(“3.14F”); Double doubleObj= Double.valueOf(“3.14”);

Các l p vi t è hàm toString() tr l i là các i t ng String bi u di n cho các giá tr nguyên th y d ng xâu.

String charStr = charObj.toString(); // “a” String boolStr = boolObj.toString(); // “true” String intStr = intObj.toString(); // “2002” String doubleStr = doubleObj.toString(); // “3.14”

Các l p nh ngh a hàm typeValue() tr l i các giá tr nguyên th y t ng ng v i các i t ng nguyên th y.

boolean b = boolObj.booleanValue(); // true int i = intObj.intValue(); // 2002 float f = floatObj.floatValueOf(); // 3.14F double d = doubleObj.doubleValueOf(); // 3.14 char c = charObj.charValue(); // ‘a’

Các l p vi t è hàm equals() th c hi n so sánh b ng nhau c a các i t ng nguyên th y.

Character charObj =newCharacter(‘a’);

boolean charTest = charObj.equals(‘b’); // false Integer intObj1 = Integer.valueOf(“2010”); boolean intTest = intObj.equals(intObj1); // false L p Boolean

L p này nh ngh a hai i t ng Boolean.TRUE, Boolean.FALSE bi u di n cho hai giá tr nguyên th y true và false t ng ng.

L p Character

L p Character nh ngh a hai giá tr c c ti u, c c i Character.MIN_VALUE,

Character.MAX_VALUE và các giá tr ki u ký t Unicode. Ngoài ra l p này còn nh ngh a m t s hàm static x lý trên các ký t :

static boolean isLowerCase(char ch)// true n u ch là ký t th ng static boolean isUpperCase(char ch)// true n u ch là ký t vi t hoa static boolean isDigit(char ch) // true n uch là ch s

static boolean isLetter(char ch)// true n u ch là ch cái

static boolean isLetterOrDigit(char ch) // true n u ch là ch ho c là s static char toUpperCase(char ch)// Chuy n ch v ch vi t hoa

static char toLowerCase(char ch)// Chuy n ch v ch vi t th ng static char toTitleCase(char ch) // Chuy n ch v d ng tiêu . Các l p bao ki u s

Các l p Byte, Short, Integer, Long, Float, Double là các l p con c a l p Number. Trong các l p này u xác nh hai giá tr :

<L p bao>.MIN_VALUE <L p bao>.MAX_VALUE là các gi i h n c a các s trong ki u ó. Ví d ,

byte minByte = Byte.MIN_VALUE; // -128

int maxInt = Integer.MAX_VALUE; // 2147483647

Trong m i l p bao có hàm typeValue() chuy n các giá tr c a các i t ng nguyên th y v giá tr s : byte byteValue() short shortValue() int intValue() long longValue() float floatValue() double doubleValue()

Trong m i l p bao còn có hàm staticparseType(String s) chuy n các giá tr c bi u di n d i d ng xâu v các giá tr s :

byte value1 = Byte.parseByte(“16”); int value2 = Integer.parseInt(“2002”); double value3 = Double.parseDouble(“3.14”);

Ví d : Vi t ch ng trình nh p vào m t dãy s tùy ý và s p x p theo th t t ng d n.

import java.io.*;

class SapXep{

static int[] day;

static void nhap(){ String str;

int n = day.length;

DataInputStream stream =newDataInputStream(System.in); System.out.println("Nhap vao " + n + " so nguyen");

for (int k = 0; k < n; k++){

try{

System.out.print(k + ": ); str = stream.readLine();

day[k] = Integer.valueOf(str).intValue(); }catch(IOException e){

System.err.println("I/O Error!"); }

}} }

static void hienThi(){ int n = day.length;

for (int k = 0; k < n; k++)

System.out.print(day[k] + " "); System.out.println();

}

static void sapXep(){ int x, max, k;

for(int i =day.length-1; i > 0; i--){ max = day[i];k = i; for (int j = 0; j < i; j++) if (max < day[j]){ max = day[j]; k = j; } day[k] = day[i]; day[i] = max; } }

public static void main(String[] args){ String str;

int n;

DataInputStream stream =newDataInputStream(System.in); System.out.print("\nCho biet bao nhieu so nhap vao: ");

try{

str = stream.readLine(); }catch(IOException e){

System.err.println("I/O Error!"); str = "0";

}

n = Integer.valueOf(str).intValue(); SapXep.day =newint[n];

nhap(); sapXep();

System.out.println("Day so duoc sap xep: "); hienThi();

}} } L p Void

L p này ký hi u cho i t ng c a l p Class bi u di n cho giá tr void.

3. L p Math

L p final class Math nh ngh a m t t p các hàm t nh th c hi n các ch c n ng chung c a toán h c nh các phép làm tròn s , sinh s ng u nhiên, tìm s c c i, c c ti u, v.v.

L p final class Math còn cung c p nh ng h ng s nh s e (c s c a logarithm), s pi thông qua Math.E và Math.PI.

Các hàm làm tròn và x lý các giá tr gi i h n

static int abs(int i) static long abs(long l) static float abs(float f) static double abs(double d)

+ Hàmabs() c n p ch ng tr l i giá tr tuy t i c a i s .

+ Hàmceil() tr l i giá tr nh nh t ki u double mà không nh h n i s và l i b ng s nguyên. Ví d ceil(3.14) cho giá tr 4.0 là s tr n trên c a i s .

static double floor(double d)

+ Hàmfloor() tr l i giá tr l n nh t ki u double mà không l n h n i s và l i b ng s nguyên. Ví d floor(3.14) cho giá tr 3.0 là s sàn d i c a i s .

static int round(float f d) static long round(double d)

+ Hàmround() c n p ch ng tr l i s nguyên g n nh t c a i s .

static int max(int a, int b) static long max(long a, long b) static float max(float a, float b) static double max(double a, double b)

+ Hàmmax() c n p ch ng tr l i giá tr c c i c a hai i s .

static int min(int a, int b) static long min(long a, long b) static float min(float a, float b) static double min(double a, double b)

+ Hàmmin() c n p ch ng tr l i giá tr c c ti u c a hai i s . Các hàm l y th a

static double pow(double d1, double d2)

+ Hàmpow() tr l i giá tr là l y th a c a d1 và d2 (d1d2).

static double exp(double d)

+ Hàmexp() tr l i giá tr là lu th a c s e và s m d (ed).

static double log(double d)

+ Hàmlog() tr l i giá tr là lô-ga-rit t nhiên (c s e) c a d.

static double sqrt(double d)

+ Hàmsqrt() tr l i giá tr là c n b c hai c a d , ho c giá tr NaN n u i s âm. Các hàm ng giác

static double sin(double d)

+ Hàmsin() tr l i giá tr là sine c a góc d c cho d i d ng radian.

static double cos(double d)

+ Hàmcos() tr l i giá tr là cose c a góc d c cho d i d ng radian.

static double tan(double d)

+ Hàmtan() tr l i giá tr là tangent c a góc d c cho d i d ng radian. Hàm sinh s ng u nhiên

static double random()

Một phần của tài liệu Lập trình hướng đối tượng (Trang 42 - 47)

Tải bản đầy đủ (PDF)

(55 trang)