1.類同名的問題: package(打包):開頭package aa.bb.cc.dd.ee.ff(最多不超過6層); 作用:不同的.class包放在不同的文件夾下,解決類同名問題 具體步驟:javac -d e:\ Person.java >指定包所在的路徑 (打包時類需要定義為是public) ...
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 }