Java从入门到精通 第18章 包及访问权限

本文深入探讨Java中包的概念及作用,解析类成员的访问权限控制,介绍Java的命名规范,演示Jar命令的使用,详细讲解单例设计模式与多例设计模式,并通过实例展示构造方法私有化的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

18.1.1包的基本概念

当一个大型程序由不同的组或人员共同开发时,不可能保证每个人所写的类名称是完全不同的,这样一来,就有可。那么为了解决这样的麻烦,就可能能出现同文件爱你覆盖问题,于是引入了包。所谓的包就是指一个文件夹。

//包的声明
package demo.java;//建立了demo/java文件夹
//包的导入
import demo.java;

18.2 类成员的访问权限控制

	priavate	default	protected     protected      public
同一类
同一包中的类X
不同包的子类X	X
其它包中的类X	X	X

18.3Java的命名规范

(1)包名中的字母一律小写,如demo.java
(2)类名,接口应使用名词,每个单词的首字母大写如TestPerson
(3)变量名,第一个单词小写,后面的单词首字母大写如newLxh
(4)方法名的第一个单词小写,后面的每个单词首字母大写如taklMySelf();
(5)常用变量名的每个字母一律大写,如PI

18.4 打包工具——Jar命令的使用

Jar文件,Java archeive file的缩写,是一种压缩文件与ZIP压缩文件格式兼容,习惯上称之为Jar包。

18.5 构造方法私有化——单例设计模式

//自动生成构造方法的类
package demo.java.d;
public class Test{

    public Test() {
    }
    public static void main(String args[])throws Exception{
    	Singleton instance=null;
    	instance=new Singleton();
    	instance.print();
    }
}

class Singleton{
	public void print(){
		System.out.println("Hello,world!");
	}
}
//构造方法私有化,实例化对象会报错
class Singleton{
	private Singleton(){//构造方法私有化,实例化对象会报错
	}
	public void print(){
		System.out.println("Hello,world!");
	}
}
//构造方法私有化,实例创建方法
package demo.java.d;
public class Test{

    public Test() {
    }
    public static void main(String args[])throws Exception{
    	Singleton instance=null;
    	instance=Singleton.instance;
    	instance.print();
    }
}

class Singleton{
	static Singleton instance=new Singleton();
	//此时的类中不会在生成无参的什么都不做的构造函数
	private Singleton(){
	}
	public void print(){
		System.out.println("Hello,world!");
	}
}
//单例设计模式,不管在外部声明了多少个对象,
//那么实际上只是取得了唯一的一个实例对象
package demo.java.d;
public class Test{

    public Test() {
    }
    public static void main(String args[])throws Exception{
    	Singleton instance=null;
    	instance=Singleton.getInstance();
    	instance.print();
    }
}

class Singleton{
	private static Singleton instance=new Singleton();
	//此时的类中不会在生成无参的什么都不做的构造函数
	private Singleton(){
	}
	public static Singleton getInstance(){
		return instance;
	}
	public void print(){
		System.out.println("Hello,world!");
	}
}
//多例设计模式
package demo.java.d;
public class Test{

    public Test() {
    }
    public static void main(String args[])throws Exception{
    	System.out.println(Sex.getInstance(0));
    }
}

class Sex{
	private String title;
	private static final Sex MALE=new Sex("男");
	private static final Sex FEMALE=new Sex("女");
	private Sex(String title){
		this.title=title;
	}
	public static Sex getInstance(int ch){
		switch(ch){
			case 0:
				return MALE;
			case 1:
				return FEMALE;
			default:
				return null;
		}
	}
	public String toString(){
		return this.title;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值