Java编程思想学习笔记——6.0访问权限控制

记录学习使用,欢迎留言讨论(如果想要知道完整的知识请查看java编程思想第六章的内容)

关键字import

不使用import

public class MyTest {
	public static void main(String[] args) {
//		不使用import导入就要写全类名,还有就是出现同名类冲突时
//		(比如导入的两个包有相同类名的类)也要写出全类名
		java.util.ArrayList<Object> list = new java.util.ArrayList<>();
	}
}

使用import

import java.util.ArrayList;

public class MyTest {
	public static void main(String[] args) {
//		使用import导入可以访问导入的public权限资源
		ArrayList<Object> list = new ArrayList<>();
	}
}

静态导入——可以直接操作静态方法

package 访问权限控制;

public class Print {
	public static void print(Object obj){
		System.out.println(obj);
	}
}

如果使用静态导入,即使同包也需要静态导入

package 访问权限控制;

// 静态导入——注意使用static关键词了的
import static 访问权限控制.Print.*;

public class MyTest {
	public static void main(String[] args) {
		print("龟龟");
	}
}

public权限

可以供任何人使用,不同包只要使用import导入即可。

protected权限

可用于同包和其衍生的子类。

默认权限

可用于同包。

private权限

除了自己都不能操作。
通过对构造器使用private修饰不让此类可以被除自己以外new一个新的类
注意点:如果显示写构造器,会使用默认的构造器,单例将失败。
通过访问权限可以实现单例模式
单例模式——饿汉式(饿汉和懒汉都有相应的缺点还有双重检查等请查阅其他资料)

				//饿汉模式(静态常量)
public class Singleton1 {
	public static void main(String[] args) {
		// 测试
		Singleton instance1 = Singleton.getSingleton();
		Singleton instance2 = Singleton.getSingleton();
		// 为True地址一致
		System.out.println(instance1==instance2);
		System.out.println("instance1.hashCode="+instance1.hashCode());
		System.out.println("instance2.hashCode="+instance2.hashCode());
		/*打印:
		true
		instance1.hashCode=366712642
		instance2.hashCode=366712642
		*/
	}
}
// 饿汉式(静态变量)
//类加载的时候执行代码,可能造成内存浪费
//避免了线程同步问题
class Singleton{
	
	// 1、 私有化构造器,外部能new
	private Singleton(){
		
	}
	
	// 2、 本类创建一个对象实例
	private final static Singleton instance = new Singleton();
	
	// 3、 提供一个对外的公共的静态方法,返回实例对象
	public static Singleton getSingleton(){
		return instance;
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值