Java初學——枚舉和實體類


一、枚舉

  1.枚舉的含義

    枚舉是由一組固定的常量組成的類型,枚舉的類型關鍵字是enum 

  2.枚舉的使用

    定義枚舉類

package enumtdome;
//用enum關鍵字創建 public enum Gender {
//枚舉類中直接放值 不需要數據類型 one,two,three,four,five,six,seven }

    枚舉的運用

package enumtdome;

import java.util.Scanner;

public class test {
  //實例化枚舉類 Gender ger;
public static void main(String[] args) { test test=new test();
  //將枚舉類型填進去 test.name(Gender.one); }
public void name(Gender day) { switch (day) { case one: System.out.println(1); break; case two: System.out.println(2); break; case three: System.out.println(3); break; case four: System.out.println(4); break; case five: System.out.println(5); break; case six: System.out.println(6); break; case seven: System.out.println(7); break; } } }

二、實體類和API

  1.API

    常用API包有:ava.lang (Enum、包裝類、Math、String、StringBuffer、System)、java.util(工具類) java.io(輸入輸出流) java.sql(數據庫)

    Api可以比喻成字典 根據類名 在文檔內查找

  2.包裝類(實體類)

    包裝類把基本類型數據轉換為對象:每個基本類型在Java.lang包里都有一個相應的包裝類

    包裝類的作用:提供了一系列實用的方法 集合不允許存放基本數據類型數據,存放數字時,要用包裝類型

  2.所有包裝類都可將與之對應的基本數據類型作為參數,來構造它們的實例 public Type(type value) 如: 除Character類外,其他包裝類可將一個字符串作為參數構造它們的實例 public Type(String value) 如:

  3.注意事項  

    Boolean類構造方法參數為String類型時,若該字符串內容為true(不考慮大小寫),則該Boolean對象表示true,否則表示false 當Number包裝類構造方法參數為String 類型時,字符串不能為null,且該字符串必須可解析為相應的基本數據類型的數據,否則編譯不通過,運行時會拋出NumberFormatException異常

  4.包裝類的常用方法

    (1)  XXXValue():包裝類轉換成基本類型 byteValue()、intValue() longValue()、shortValue() doubleValue()、floatValue() charValue()、booleanValue()

    (2)  toString():以字符串形式返回包裝對象表示的基本類型數據(基本類型->字符串)或  parseXXX():把字符串轉換為相應的基本數據類型數據(Character除外)(字符串->基本類型)

    (3)  XXX.valueof:將基本數據類型 和字符串轉換成包裝類

  代碼實現如下:

package shitilei;

import java.util.ArrayList;
import java.util.List;

import com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory.Zephyr;

public class Test {
public static void main(String[] args) {
    //基本數據類型是"."不出內容的 可以將基本數據類型轉換為對象
    //方法一
    int i=9;
    List list=new ArrayList();
    list.add(i);//本身集合中不能存放基本數據類型  但是在添加的時候有了jdk自動裝箱的操作
    //所有的包裝類都有的構造方法  對應的數據類型做參數
    int j=9;
    
    Integer j1=new Integer(j);
    
    Double double1=new Double(9.8);
    //方法二
    //除Character之外的都有的構造方法 將字符串做參數    
    Integer j3=new Integer("9");
    //字符串必須符合定義的數據的格式否則會報錯
    Double double2=new Double("9.8");
    //Character caCharacter=new Character("a");//編譯報錯
    //方法三
    //valueof() 
    //(1)基本數據類型轉包裝類  
    Integer iiiInteger=Integer.valueOf(99);
    //(2)如何把字符串轉成包裝類
    Integer iinInteger=Integer.valueOf("99");
//***************************************************************************
    //包裝類轉換基本類型
    Integer aaInteger=new Integer(99);
    System.out.println(aaInteger.intValue());
    //基本類型轉字符串
    int num=9;
    String ing=Integer.toString(9);//其他的類似
    //字符串轉基本數據類型
    int num1=Integer.parseInt("99");

    }
}

  5.拆箱和裝箱

    概念:在jdk1.5版本后 基本數據類型和包裝類自動轉換換  裝箱:基本類型轉換為包裝類的對象 拆箱:包裝類對象轉換為基本類型的值

    特點:JDK1.5后,允許基本數據類型和包裝類型進行混合數學運算 包裝類並不是用來取代基本數據類型的 在基本數據類型需要用對象表示時使用

  6.math類

    java.lang.Math類提供了常用的數學運算方法和兩個靜態常量E(自然對數的底數) 和PI(圓周率)

    常用的方法:   

package shitilei;

public class Mathtest {
public static void main(String[] args) {
    //隨機生成0-10的浮點數
    System.out.println(Math.random()*10);
    //生成隨機的整數 強制轉換成int
    System.out.println((int)Math.random()*10);
    //絕對值
    System.out.println(Math.abs(-33));
    //最大值
    System.out.println(Math.max(22, 5));
    
}
}

   7.Random類

        Random rand = new Random(); // 創建一個Random對象
        for (int i = 0; i < 20; i++) {// 隨機生成20個隨機整數,並顯示
            int num = rand.nextInt(10);// 返回下一個偽隨機數,整型的
        System.out.println("第"+(i+1)+"個隨機數是:"+num);
        }
package shitilei;
import java.util.Random;
public class Rodemtest {
    public static void main(String[] args) {
        //不同的種子構造對象生成的隨機數是不一樣的
        Random rand = new Random(56); // 創建一個Random對象
        Random rand2=new Random(56);

        System.out.println(( rand.nextInt(10)));
        System.out.println( rand2.nextInt(10));
        
    }
}

由此可見用同一個種子值來初始化兩個Random 對象,然后用每個對象調用相同的方法,得到的隨機數也是相同的

  8.String類 

    String類位於java.lang包中,具有豐富的方法 計算字符串的長度、比較字符串、

package shitilei;

import java.util.Scanner;

public class StringTest {
    public static void main(String[] args) {
        String a="  admin  ";
        String p="123456";
        Scanner input=new Scanner(System.in);
        System.out.println("請輸入用戶名");
        String username=input.next();
        System.out.println("請輸入密碼");
        String pwd=input.next();
        //trim()去掉字符串兩端的空格
        a.trim();
        //lenght()判斷字符串長度
        //String 從寫了equels方法變成了比較兩個字符串是否為同一對象
        if (pwd.length()<6&&username.equals(a)) {
            //比較條件可以寫成pwd.length()<6&&username==a   ==是比較的地址
            System.out.println("登錄成功");
        }else {
        System.out.println("登錄長度不足六位或用戶名錯誤");
        }
//*************************************************************
        String str1="BDQN";
        String str2="bdqn";
        //區分大小寫
        System.out.println(str1.equals(str2));
        //不區分大小寫
        System.out.println(str1.equalsIgnoreCase(str2));
        //轉換小寫比較
        System.out.println(str1.toLowerCase().equals(str2.toLowerCase()));
        //轉換大寫比較
        System.out.println(str1.toUpperCase().equals(str2.toUpperCase()));
        
    }
}

提取字符串

package shitilei;

import java.util.Scanner;

import sun.net.www.content.audio.wav;

public class Stringjiequ {
    public static void main(String[] args) {
        String shou="hello my name is wuxuewei";
        //查找某個字符出現的位置
        System.out.println(shou.indexOf("w"));
        //查找最后一個w出現的位置
        System.out.println(shou.lastIndexOf("w"));
        //截取字符串
        System.out.println(shou.substring(4));//從第四截取到最后
        //起始位置   結束位置
        System.out.println(shou.substring(0, 5));
System.out.println("*******************************************");
    //字符截取的練習
    Scanner input=new Scanner(System.in);
    System.out.println("=====歡迎提交作業=====");
    System.out.println("請輸入文件名");
    String name=input.next();
    System.out.println("請輸入郵箱");
    String yx=input.next();
    //檢查文件名
    boolean nameflag = false;
    int i=name.indexOf(".");
    if (i!=-1&&i!=0&&name.substring(i).equals(".java")) {
        nameflag=true;
    }else {
        System.out.println("文件名無效");
    }
    //檢查郵箱名
    boolean yxflag = false;
    int aite=yx.indexOf("@");
    int dian=yx.indexOf(".");
    if (aite!=-1&&dian!=-1&&dian>aite) {
        yxflag=true;
    }else {
        System.out.println("郵箱無效");
    }
    if (yxflag && nameflag) {
        System.out.println("提交成功");
    }else {
        System.out.println("提交失敗");
    }
    
    }
}

  

System.out.println("***************字符串拆分****************");
        // 字符串拆分方法 split();
        String shici = "長亭外 古道邊 晚風拂柳醉斜陽";
        String[] chafen = new String[100];
        System.out.println("拆分前" + shici);
        System.out.println("拆分后");
        chafen = shici.split(" ");
        for (String string : chafen) {
            System.out.println(string);
        }
        System.out.println("*********查詢字符出現的次數********");
        System.out.println("請輸入一字符串");
        String chaifen2=input.next();
        System.out.println("請輸入你要查詢的字符");
        String chazi=input.next();
        String chaifen2s[]=chaifen2.split("*");
        int count=0;
        for (int j = 0; j < chaifen2s.length; j++) {
            if (chaifen2s[j].equals(chazi)) {
                count++;
            }
        }
        System.out.println("查詢的字符出現了"+count);
        

  9.StringBuffyer類

    StringBuffer:對字符串頻繁修改時,使用它來大大提高程序執行效率

    StringBuffer的使用:

package shitilei;

public class StringBufferDome {
public static void main(String[] args) {
    //String →StringBuffer
    StringBuffer str=new StringBuffer("hello");
    //StringBuffer→String
    String s=str.toString();
    //StringBuffer添加內容
    str.append("word");
    System.out.println(str);
    //insert  插入內容
    str.insert(5, ",");
    System.out.println(str);
}
}

10.獲取當前時間

package shitilei;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateDome {
    public static void main(String[] args) {
        //當前時間
        Date date=new Date();
        System.out.println(date);
        System.out.println("******************************************");
        //設置時間格式
        SimpleDateFormat fomator=new SimpleDateFormat("yyyy-MM-dd-mm:ss");
        String string=fomator.format(date);
        System.out.println(string);
        System.out.println("*********************************************");
        //通過calendar類
        Calendar s=Calendar.getInstance();
        System.out.println(s.get(Calendar.YEAR)+"年"+(s.get(Calendar.MONTH)+1)+"月"+s.get(Calendar.DAY_OF_MONTH));
    System.out.println("今天是星期"+s.get(Calendar.DAY_OF_WEEK));
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM