不同权限的访问能力
同一类中:public protected default(空的) private
同一包中(子类与无关类):public protected default
不同包的子类:public protected
不同包中的无关类:public
可见public具有最大权限。private则是最小权限。
编写代码时,如果没有特殊的考虑,建议这样使用权限:
成员变量使用private,隐藏细节。
构造方法使用public,方便创建对象。
成员方法使用public,方便调用对象。
注意:不加权限修饰符,其访问能力与default修饰符相同
构造代码块
构造代码块:定义在成员位置的代码块{}
执行:每次创建对象都会执行构造代码块
public class Person{
{
构造代码块执行了
}
}
静态代码块
静态代码块:定义在成员位置使用static修饰的代码块
位置:类中方法外。
执行:随着类的加载而执行且执行一次,优先构造方法的执行
格式:
public class Person {
private String name;
private int age;
//静态代码块
static{
System.out.println(“静态代码块执行了”);
}
}
Object类
java.lang.Object 类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。
如果一个类没有特别指定父类, 那么默认则继承自Object类。
根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。主要学习其中的2个:
public String toString() :返回该对象的字符串表示。
toString方法返回该对象的字符串表示,其实该字符串内容就是:对象的类型名+@+内存地址值。
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。
调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有
默认和自定义两种方式。
import java.util.Objects;
public class Person {
private String name;
private int age;
@Override
public boolean equals((Object o){
//如果对象地址一样则认为相同
if(thiso) return true;
//如果参数为空,或者类型信息不一样,则认为不同
if(onull||getClass()!=o.getClass()) return false;
//转换为当前类型
Person person=(Person) o;
//要求基本类型相等,并且引用类型交给Java.util.Objects类的equals静态方法取用结果
return age==person.age&&Objects.equals(name,person,name);
}
}
DateFormat类
格式化:按照指定的格式,把Date对象转换为String对象。
解析:按照指定的格式,把String对象转换为Date对象。
dateformat类为抽象类,不能直接使用,所以需要常用子类simpledateformat。这个类需要一个模式来指定格式化或解析的标准。
public SimpleDateFormat(String pattern) :用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。
格式规则:
标识字母(区分大小写) 含义
y 年
M 月
d 日
H 时
m 分
s 秒
DateFormat类的常用方法有:
public String format(Date date) :将Date对象格式化为字符串。
public Date parse(String source) :将字符串解析为Date对象。
Calendar类
java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。
有两种方式可以获取GregorianCalendar对象:
直接创建GregorianCalendar对象;
通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象
常用方法:
public static Calendar getInstance() 获取一个它的子类GregorianCalendar对象。
public void set(int field,int value) 设置某个字段的值
public void add(int field,int amount) 为某个字段增加/减少指定的值
public int get(int field):获取某个字段的值。field参数表示获取哪个字段的值,可以使用Calender中定义的常量来表示:
Calendar.YEAR : 年
Calendar.MONTH :月
Calendar.DAY_OF_MONTH:月中的日期
Calendar.HOUR:小时
Calendar.MINUTE:分钟
Calendar.SECOND:秒
Calendar.DAY_OF_WEEK:星期
BigDecimal类
构造方法名 描述
BigDecimal(double val) 将double类型的数据封装为BigDecimal对象
BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal
常用方法
public BigDecimal add(BigDecimal value) 加法运算
public BigDecimal subtract(BigDecimal value) 减法运算
public BigDecimal multiply(BigDecimal value) 乘法运算
public BigDecimal divide(BigDecimal value) 除法运算
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode):
divisor:除数对应的
BigDecimal对象;
scale:精确的位数;
roundingMode:取舍模式
包装类
基本类型 对应的包装类(位于java.lang包中)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean