Java学习第十一天

1.类同名的问题:
  package(打包):开头package aa.bb.cc.dd.ee.ff(最多不超过6层);
    作用:不同的.class包放在不同的文件夹下,解决类同名问题
    具体步骤:javac -d e:\ Person.java --------->指定包所在的路径
        (打包时类需要定义为是public)
        set classpaths=.;f:\//指定字节码所在路径

  import(导入):
    具体步骤:import java.util.Scanner;//导入包,包中的类必须是public
         import java.util.*;//导入包,*号表示导入这个文件夹下的所有文件

  运行打包的文件:java 包名.类名------------------->java gp04.java.Person


2.访问修饰符        private      默认(前面没有修饰符)      protected        public
  同一个类重         y             y                 y          y
  同一个包中         n             y               y         y
  不同的包没有继承关系    n             n                 n         y
  在不同的包有继承关系    n             n                  y        y

在同一个类中任何权限的都能使用
在同一个包中,不同的类中可以使用 默认,protected,public的成员
子类和父类在同一个包中,子类可以访问从父类中继承过来的 默认,protected,public的成员
子类和父类在不同一个包中,子类可以访问从父类中继承过来的protected,public的成员
使用别的包中的类,没有继承关系,只能使用类中public的成员


  注意:lang包下的class自动导入(意味着如果导入的文件在lang目录下,不用在程序开头写import导入语句,直接调用)

3.常用类:

  Data类:时间类
      Date shijian=new Data();//当前时间

    日期格式的转换:
    java.text.DateFormat ---了解

    java.text.SimpleDateFormat yyyy MM dd HH mm ss

    //格式化输出时间    

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy#MM#dd HH:mm:ss");
    Date d = new Date();
    sdf.format(d);

 1 测试用例:
 2 import java.util.Date;
 3 import java.text.DateFormat;
 4 import java.text.SimpleDateFormat;
 5 class Demo6 
 6 {
 7     public static void main(String[] args) 
 8     {
 9     //long time=System.currentTimeMillis();//毫秒
10 
11     Date shijian = new Date();
12     //System.out.println(shijian);
13 
14     long time=System.currentTimeMillis();
15     Date d = new Date(time);
16     //System.out.println(d);
17 
18     //Date表示日期的格式不太好,能不能转成其它格式
19     DateFormat df =     DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.LONG);
20     Date date =new Date();
21     //使用DateFormat默认的格式进行格式化
22     String ss = df.format(date);
23     sop(ss);
24 
25     //使用SimpleDateFormat实现日期的格式化
26     //通过"yy/MM/dd E HH:mm:ss"来指定格式化之后的格式
27     SimpleDateFormat sdf =new SimpleDateFormat("yy-MM-dd E         HH:mm:ss");
28     String ww=sdf.format(new Date());
29     sop(ww);
30     }
31     public static void sop(Object obj){
32         System.out.println(obj);
33     }
34 }    

  Calendar:时间抽象类

    Calendar c = Calendar.getInstance();
    int nian = c.get(Calendar.YEAR);
    int yue = c.get(Calendar.MONTH);
    int ri = c.get(Calendar.DAY_OF_MONTH);

 

    Math:数学类

      ceil()//返回大于或等于这个数的最小整数
      floor()//返回小于或等于这个数据最大整数
      round()//四舍五入取整
      pow(2,3)//求2的3次方,第二个参数也可以是小数,pow(2,0.5)==sqrt(2)
      sqrt()//开方
      random()//生成的随机数大于等于0.0, 小于1.0

    Random:随机数

      nextInt() nextFloat() nextDouble() nextLong()
      注意:1.Random函数和Math.random()不一样,随机数范围不一样,写法也不一样
         2.测试Random时注意边界值是否可以随机取到

4.正则表达式:实际就是个字符串,专门针对字符串的

  匹配:实际上使用的是String中的boolean matches(String regex)方法 ,判读一个字符串是否匹配某个正则表达式
  切割:实际上使用的是String中的String[] split(String regex)
  替换:实际上使用的是String中的String replaceAll(String regex, String replacement) //把字符串中符合正则表达式的都替换为第二个参数
  获取:把正则表达式转换成Pattern类型的对象,使用Pattern对象的matcher方法得到Matcher对象

 1 测试:
 2 import java.util.regex.Pattern;
 3 import java.util.regex.Matcher;
 4 class Demo11 
 5 {
 6 public static void main(String[] args) 
 7 {
 8 /*
 9 
10 
11 //piPei();
12 
13 //qieGe();
14 
15 //tiHuan();
16 
17 huoQu();
18 }
19 
20 public static void huoQu(){
21 
22 String str = "zhu yi la,ming tian fang jia";//获取由四个字母构成的
23 
24 String regex="[a-z]{4}";
25 
26 //把正则表达式转换成Pattern类型的对象
27 Pattern pattern = Pattern.compile(regex);
28 
29 //使用Pattern对象的matcher方法得到Matcher对象,因为Matcher对象具备从字符串中查找的功能
30 Matcher matcher = pattern.matcher(str);
31 
32 while(matcher.find()){
33 sop(matcher.group());
34 }
35 
36 }
37 
38 //替换
39 public static void tiHuan(){
40 
41 //String str="zhangsanxxxxxxxxlisi**********zhaoliu$$$$$$$$$$$$$$wangwu";
42 //String regex = "(.)\\1+";
43 
44 
45 //String str="lskdjflksd9283749837493lsjdflskjdf098409283409wehro564321980";
46 //String regex = "\\d{8,}";
47 
48 String str="13533337777";
49 String regex="(\\d{3})\\d{4}(\\d{4})";
50 
51 String ss = str.replaceAll(regex,"$1****$2");//$1表示取第一组的值
52 sop(ss);
53 }
54 
55 
56 //切割
57 public static void qieGe()
58 {
59 //String str="zhangsan.lisi.zhaoliu.wangwu";
60 //String regex="\\.";
61 
62 //String str="zhangsan lisi zhaoliu wangwu";
63 //String regex=" +";
64 
65 String str="zhangsanxxxxxxxxlisi**********zhaoliu$$$$$$$$$$$$$$wangwu";
66 String regex="(.)\\1+"; //第二位和第一组的值是一样的,一个正则表达式可以包括多组,从左到右依次是第一组,第二组
67 
68 String[] arr = str.split(regex);
69 for(int i=0;i<arr.length;i++){
70 sop(arr[i]);
71 }
72 }
73 
74 
75 //验证手机号
76 public static void piPei(){
77 
78 String phone="12838384444";
79 String regex="1[38576]\\d{9}";
80 
81 boolean b = phone.matches(regex);
82 sop(b);
83 
84 }
85 
86 public static void sop(Object obj){
87 
88 System.out.println(obj);
89 }
90 }

 

posted on 2019-08-07 23:26  small_slag  阅读(241)  评论(0编辑  收藏  举报

导航