一、 包
1、 包的命名?
一般的命名都是随便命名的,这样会很杂。包的命名规则:将公司的域名反转作为包名。比如www.baidu.com,则包的名字为com.baidu ,对于包名,每个字母都要小写。如果你定义类的时候没有使用package,那么java就认为我们所定义的包位于默认包里(default package)
2、import的语法?
导入,比如import com.baidu .*;表示导入包下面所有的类,*表示通配符,匹配任何字母。如果两个类在同一个包下,那么则不需要导入,直接使用。
二、访问控制符
1、public(公共的):被public所修饰的属性和方法可以被所有类访问。
2、protected(受保护):被protected所修饰的属性和方法可以在类内部、相同包以及该类的子类所访问(是在该类内部访问这个属性)。
package test;
public class SingletonTest {
protected int x=45;
}
package test01;
import test.SingletonTest;
import test.TestStudent;
/*
* protected定义的属性,可以被该类的子类所访问,意思是可以被子类继承下来作为属性来使用。
*/
public class Test extends SingletonTest{
public void output(){
System.out.println(x);
}
public static void main(String[] args) {
Test test=new Test();
test.output();
System.out.println(test.x);
}
}
输出结果:
45
45
再看看这个程序报错:
package test01;
import test.SingletonTest;
import test.TestStudent;
/*
* 被protected所修饰的属性和方法可以被该类的子类所访问的意思是说可以被该类的子类内部所访问
* 下面程序虽然在其子类中生成了对象,但最终调用的还是其父类SingletonTest类的属性,意思不同,所以报错
*
*/
public class Test extends SingletonTest{
public void output(){
System.out.println(x);
}
public static void main(String[] args) {
SingletonTest test=new SingletonTest();
// test.output();
System.out.println(test.x);
}
}
3、private(私有的):被private所修饰的属性和方法只能在该类内部使用,就是属性和方法不能被继承下来。
4、默认的(不加任何修饰符):在类内部以及相同包下面的类所使用。
instanceof
instanceof:判断某个对象是否是某个类的实例。
语法形式:引用名instanceof类名(接口名),返回一个Boolean值。
public class Test {
public static void main(String[] args) {
People people=new People();
System.out.println(people instanceof People);
}
}
class People{
}
输出结果:
true
public class Test {
public static void main(String[] args) {
Men people=new Men();
System.out.println(people instanceof People);
// 因为Men是People的子类,根据继承,子类就是父类,因此Man也可以看成是People的实例
}
}
class People{
}
class Men extends People{
}
输出结果:true