zoukankan      html  css  js  c++  java
  • 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));
        }
    }
  • 相关阅读:
    idea2020 安装
    739. 每日温度
    图像翻转
    257. 二叉树的所有路径
    1466. 重新规划路线
    面试题 04.05. 合法二叉搜索树
    671. 二叉树中第二小的节点
    965. 单值二叉树
    648. 单词替换
    137. 只出现一次的数字 II
  • 原文地址:https://www.cnblogs.com/wuxuewei/p/10997513.html
Copyright © 2011-2022 走看看