包,java中,包(package)的功能是将繁杂的类进行归类。将同一项目的文件进行分类存储,避免混淆名字相同或相近的类。故在起类名之前加了其所在包的包名,这就好比称呼名字相同的人。为了加以区分,在其名字之前添加称谓。比如其职务、从属单位等。
在此基础上,import便出现。只需要在类文件中,将类的包名编写在import之后。此后,在new类的构造函数时,便可省去编写冗长类名的痛苦。
访问修饰符,为了满足对类在不同权限下的调用,而完成高效的面向对象编程。java中四大访问修饰符:public、default、protected、private各显神通,实现了逐级开放访问权限的功能。
final,final的三个作用简单概括起来就是:声明常量、阻止重写 、阻止继承
其中,第二个和第三个并不冲突。因为阻止重写并不阻止重载。
public class Pack {
private String type;
/**
* final的第一种用法 final修饰变量的时候就是在声明常量,在Test类里是不能被修改的。
*/
// 静态属性,分配内存,不需要实例化。
public static final String ROU = "肉包";
public static final String DOU = "豆包";
public static final String CAI = "菜包";
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
/**
* final的第二种用法
* final修饰类的时候阻止重写
* @author
*/
public final class 太监 {
}
/**
* final第二种用法:阻止重写
* final修饰方法的时候阻止重写
* @author
*
*/
public class 子孙 extends 祖宗 {
public final void 对阵仗() {//此处会报错
// final修饰方法的时候阻止重写
}
}
/**
* final的第三种用法
* final修饰类的时候阻止继承
* @author
*/
public final class 太监 {
}
/**
* final的第三种用法:阻止继承
* final修饰类的时候阻止继承
* @author 刘渊
*/
public class 太监的儿子 extends 太监 {//此处会报错
}
接口,接口的主要功能是协作和隔离变化的。此外,接口可以继承多个接口,即在java里接口实现了多继承。而在对象类里,接口对方法的重写,则是对其内部的功能的实现。
//接口主要是协作,隔离变化的。
public interface Function1 {
public void eat();
public void drink();
public void excrete();
public void urine();
public void speak(String content);
}
//接口主要是协作,隔离变化的。
public interface Function2 {
public void blow();
public void pull();
public void play();
public void sing();
}
//接口主要是协作,隔离变化的。
//接口对接口是继承,类对接口是实现。
public interface Function3 extends Function1, Function2 {
// 接口可以多继承接口,即接口实现了多继承。
}
//接口主要是协作,隔离变化的。
public class Person implements Function1, Function2 {
@Override
public void blow() {
// TODO Auto-generated method stub
}
@Override
public void pull() {
// TODO Auto-generated method stub
}
@Override
public void play() {
// TODO Auto-generated method stub
}
@Override
public void sing() {
// TODO Auto-generated method stub
}
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void drink() {
// TODO Auto-generated method stub
}
@Override
public void excrete() {
// TODO Auto-generated method stub
}
@Override
public void urine() {
// TODO Auto-generated method stub
}
@Override
public void speak(String content) {
// TODO Auto-generated method stub
}
}
//接口主要是协作,隔离变化的。
public class Test {
public static void main(String[] args) {
Function1 f = new Function1() {
@Override
public void urine() {
// TODO Auto-generated method stub
}
@Override
public void speak(String content) {
// TODO Auto-generated method stub
}
@Override
public void excrete() {
// TODO Auto-generated method stub
}
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void drink() {
// TODO Auto-generated method stub
}
};
f.eat();
f.drink();
f.excrete();
f.urine();
}
}
//接口主要是协作,隔离变化的。
public class Test2 {
public static void main(String[] args) {
Function2 f = new Function2() {
@Override
public void sing() {
// TODO Auto-generated method stub
}
@Override
public void pull() {
// TODO Auto-generated method stub
}
@Override
public void play() {
// TODO Auto-generated method stub
}
@Override
public void blow() {
// TODO Auto-generated method stub
}
};
f.blow();
f.pull();
f.play();
f.sing();
}
}