面向对象 - 访问权限
public:公共的 , 访问权限修饰符 Java的源码中,公共类只能有一个,而且必须和源码文件名相同 main方法:main方法是JVM调用的,JVM调用时可以任意调用,而不用考虑权限问题
Java中访问权限主要分为4种: 1.private:私有的,同一个类中可以使用 2.(default):默认权限,当不设定任何权限时,JVM会默认提供权限,包(路径权限)权限 3.protected:受保护的权限,子类可以访问 4.public:公共的,任意使用
User17 user = new User17();
//System.out.println(user.name); //私有的,无法使用
System.out.println(user.username);
System.out.println(user.sex);
System.out.println(user.age);
class User17 {
private String name;
public String username;
String sex;
protected int age;
void test() {
System.out.println(name);
System.out.println(age);
System.out.println(username);
}
private : 同类 default : 同类,同包(路径) protected : 同类,同包,子类 public : 公共的 所谓访问权限,就是访问属性,方法的权力和限制 谁访问? Java17_Object_Access_1 -> super -> java.lang.Object 访问谁的? Person17 -> super -> java.lang.Object
Person17 person = new Person17();
class Person17 {
void test() throws Exception {
clone();
}
面向对象 - 外部类 - 内部类 Java中不允许外部类使用private,protected修饰 所谓外部类就是在源码中直接声明的类 所谓内部类就是类中声明的类 内部类就当成外部类的属性使用即可 因为内部类可以看作是外部类的属性,所以需要构建外部类对象才可以使用
OuterClass outer = new OuterClass();
OuterClass.InnerClass innerclass = outer.new InnerClass();
//outer.new.InnerClass.var
}
}
class OuterClass {
public class InnerClass {
}
}
单例模式
JVM默认给类提供的构造方法,其实就是公共的,无参的构造方法
1.类的创建过程复杂
2.类的对象消耗资源
User19 instance1 = User19.getInstance();
User19 instance2 = User19.getInstance();
User19 instance3 = User19.getInstance();
User19 instance4 = User19.getInstance();
User19 instance5 = User19.getInstance();
User19 instance6 = User19.getInstance();
class User19 {
private static User19 user19 = null;
private User19() {
}
public static User19 getInstance() {
if( user19 == null ) {
user19 = new User19();
}
return user19;
}
}
// 判断两对象的内存地址是否相等
System.out.println(instance1 == instance6);
System.out.println(instance1.equals(instance5));