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));
    }
}

 

posted @ 2019-06-10 14:33  Sprio丨往昔  阅读(1970)  评论(0编辑  收藏  举报