package关键字
就是使用包名将程序文件1个个隔离.程序第一行
语法:pachage 包名;
com._520it.crm.util;
编译带有package的类
javac -d xxx.java
运行
java com._520it.xxx
import
导入包名,需要调用的时候
静态导入:
package _import;
import static java.util.Arrays.sort;
public class test {
public static void main(String[] args) {
int[] arr = {11,22,55,02};
sort(arr);
System.out.println(java.util.Arrays.toString(arr));
}
}
封装
为了隐藏对象功能实现,使用者没必要知道细节.
访问修饰符
public 权限最大
private 仅类中访问
默认 类内部,同一个包
protected 类内部,同一个包,子类
this关键字
哪个对象调用了this所在的方法,该方法中的this就是哪一个对象
this的使用:
1\解决成员变量和参数之间的二义性,必须使用(get/set)
2\同一个类中多个实例方法间的调用.
package _this;
public class demo {
/**
* @param args
*/
public static void main(String[] args) {
new newDemo().setxxx();
}
}
class newDemo{
void setxxx(){
this.setyyy();
System.out.println("这里是xxx");
}
void setyyy(){
System.out.println("这里是yyy");
}
}
3\将当前对象作为参数传递到另一个方法
4\作为方法的返回值(链式编程)
package _this;
public class demo {
/**
* @param args
*/
public static void main(String[] args) {
new newDemo().append().append();
}
}
class newDemo{
void setxxx(){
this.setyyy();
System.out.println("这里是xxx");
}
void setyyy(){
System.out.println("这里是yyy");
}
newDemo append(){
return this;
}
}
5\构造器重载的互相调用 (构造器中出现this必须在第一行)
少参数调用多参数
6\static不能和this一起使用
static优先于对象存在,static是加载虚拟机就存在了,而this是new出来的
引出继承
子类可以继承到父类哪些成员
1):若父类成员使用public或者protected修饰,子类可以继承.
2):若父类成员使用包访问权限(不写):
若子类和父类在同包中,可以继承.
若子类和父类不在同包中,则不能继承.
3):若父类成员使用private修饰,子类不能继承.
4):父类的构造器,子类也继承不到.(两个类名都不同,怎么继承?)
所有类(不包括objec),都有一个根类,object.
java中的继承支持单继承,不支持多继承
方法覆盖
当子类继承与父类的时候,使用的方法不一定适合于子类,那么就使用方法覆盖.
方法覆盖遵循一同二小一大:
一同:方法名相同
二小:子类方法的返回类型应该小于等于父类方法的返回类型
子类方法的返回类型要么等于父类方法的返回类型,要么是父类方法返回类型的子类.
子类方法不能抛出新的异常
一大:子类方法的访问修饰符,必须大于等于父类方法的访问修饰符
java5开始,凡是方法覆盖的方法上面都有@override
super关键字
当前对象的父类对象
super应用的场景
super.fly(); //调用父类的方法
suerp.name; //调用父类的成员变量
super(参数) //调用父类的构造方法
子类的创建过程:
1):创建子类对象时,会调用子类的构造器,而在调用子类构造器之前,会先调用父类的构造器.
2):先对父类做初始化,再对子类做初始化.
隐藏问题(把之前的挡住了)
1.局部变量和成员变量同名.使用this来解决
2.在满足情况下,子类和父类成员变量同名,子类隐藏了父类的变量,使用super.成员变量来解决
3.在满足情况下,子类和父类存在相同的静态方法
Object类
protected void finalize()
public boolean equals(Object obj)
public int hashCode() 返回一个hash值,决定了该对象在哈希表中的存储位置.
public String toString() 返回该对象的字符串表示,一般都重写此方法,观察对象.