Java 学习笔记
day11
-
父类中使用public定义的方法,子类的访问权限必须是public
-
private定义的成员只能自己用
-
覆写方法时可以扩大权限,比如default>public ,不能缩小权限,会报错
-
private方法不能被子类继承,但是可以被父类的方法调用
-
声明成员变量,一般名字前加个m
-
抽象类中是可以定义构造方法的
-
在接口中的抽象方法必须定义为public权限,不写也是public
-
向上转型,父类指向子类
-
接口跟抽象类的异同
-
熟悉匿名内部类
-
接口由全局常量和抽象方法组成,所以
-
String AUTHOR = "Jensen";等价于public static final String AUTHOR = "Jensen";
-
void print();等价于public abstract void print();
-
String getInfo();等价于public abstract String getInfo();
-
Java允许一个接口继承多个接口:
interface 子接口 extends 父接口A,父接口B,...{ } -
对象 instanceof 类 返回boolean类型
-
抽象类 制作模板
-
接口 制定标准
-
设计模式 工厂模式
在接口和子类之间加入一个过渡端,通过此过渡端取得接口的实例化对象,java培训一般都会称这个过渡端为工厂类。 -
"orange".equals(className) 为什么在进行字符串判断时要把字符串常量写在前面?
答:这样做可以避免空指向异常,比如传入的值为null时
数组
day12
拆箱与装箱
int x = 30;Integer i = new Integer(x);//装箱int y = i.intValue();//拆箱
包装类的应用
-
包装类在实际中用的最多的是将字符串变为基本数据类型的操作,例如将一个全由数字组成的字符串变为一个int或float类型的数据。
String str1 = "30";String str2 = "30.3";int x = Integer.parseInt(str1);float f = Float.parseFloat(str2);
匿名内部类
day13
1、常用类String
2、正则表达式
-
格式不用记
-
句点.表示单个字符
-
方括号[]表示可能出现字符集里的单个字符
-
括号()可表示多个字符
-
大括号{}表示次数
-
转义字符“\”
-
一般正则表达式是由通配符和固定字符组成
-
栗子:
-
字母 _ 数字 大于6小于10位
"\w{6,10}" -
邮箱:xxx@xxx.com
"\w+@\w+\.\w+" -
手机:以13 15 18 17 开头 11位
"[1][3578]\d{9}"
-
3、常用类 StringBuffer 代表可变的字符序列
day14
1、StringBuffer与StringBuilder的区别:
-
StringBuffer :同步 线程安全 效率较低
-
StringBuilder :异步 不安全 单线程效率高
2、基本数据类型包装类
-
基本数据类型 包装类 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double -
Integer
-
public static int parseInt(String s)
-
public static Integer valueOf(String s)
-
-
java5.0之后有自动拆装箱功能,如下
Integer i = new Integer(100);int j = i + 100;// 自动拆箱int k = 100;Integer m = k; // 自动装箱
-
Character
isUpperCase(char ch) 判断字符是否是大写字母
isLowerCase(char ch) 判断字符是否是小写字母
isLetter(char ch) 判断字符是否是字母
isDigit(char ch) 判断字符是否是数字
3、Date、Calendar、DateFormat等与时间相关的类
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test { public static void main(String[] args) { // 创建日期格式对象 SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); try { Date date = format.parse("2011年11月11日 11:11:11"); System.out.println(date.getTime()); } catch (ParseException e) { e.printStackTrace(); } // 创建Calendar对象 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); System.out.println("year = " + year); int month = calendar.get(Calendar.MONTH); System.out.println("month = " + (month + 1)); int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("day = " + day); } }