java基础---包

1. 包知识点一:

package mypack;												//相当于是文件夹名字,包名小写

class PackageDemo0
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}


/*
编译:
	编译的时候, javac PackageDemo0.java是可以通过的,会在当前目录下创建一个
	叫PackageDemo0.class 文件
运行:
	1. 运行的时候,使用java PackageDemo0的时候,会发生错误: 找不到或无法加载主类 PackageDemo0
	   的错误,原因是文件路径不存在嘛
	2. 运行的时候,使用java mypack.PackageDemo0的时候,会发生错误: 找不到或无法加载主类 mypack.PackageDemo0
	   的错误,原因是没有创建文件夹
正确的操作:
	1. 编译:javac -d . PackageDemo0.java  这样就会自动在当前目录下创建mypack文件夹
	2. 运行:java mypack.PackageDemo0
*/

2. 包知识点二:

//import mypack1.Dog;

/*
这里会调用Dog类,而Dog.java文件已经 编译成javac -d . Dog.java
*/

class PackageDemo 
{
	public static void main(String[] args) 
	{
//		Dog dog = new Dog();
		mypack1.Dog dog = new mypack1.Dog();
		dog.eat();
		System.out.println("Hello World!");
	}
}


/*
问题一:使用Dog dog = new Dog();
		PackageDemo.java:7: 错误: 无法访问Dog
						Dog dog = new Dog();
						^
		  错误的源文件: .\Dog.java
			文件不包含类Dog
			请删除该文件或确保该文件位于正确的源路径子目录中
		1 个错误

正确的调用方法:mypack1.Dog dog = new mypack1.Dog(); 找到文件路径

问题二:而当Dog.java文件已经 编译成javac -d c:\myclass Dog.java时候,我们再运行java PackageDemo时候
		PackageDemo.java:12: 错误: 程序包mypack1不存在
						mypack1.Dog dog = new mypack1.Dog();
							   ^
		PackageDemo.java:12: 错误: 程序包mypack1不存在
						mypack1.Dog dog = new mypack1.Dog();
		

正确的调用方法:设置环境变量 set classpath=c:\myclass

问题三:而当Dog.java文件已经 编译成javac -d c:\myclass Dog.java时候
		编译主函数:javac PackageDemo.java,然后运行:java PackageDemo
		就会出现错误: 找不到或无法加载主类 PackageDemo 错误,说明运行时找不到Dog.class文件

解决办法: javac -d c:\myclass PackageDemo.java 使PackageDemo.class文件和mypack文件夹路径相同
*/
3. 包知识点三:

Animal.java

package mypackanimal;

public interface Animal
{
	public void eat();
}  

/*

javac -d c:\myclass Animal.java


Dog1.java:3: 错误: Animal在mypackanimal中不是公共的; 无法从外部程序包中对其进行
访问

解决方法: 加public



*/

Dog1.java

package mypack1;

public class  Dog1 implements mypackanimal.Animal								
{
	public void eat()
	{
		System.out.println("eat bones !!");
	}
}
/*
javac -d c:\myclass Dog1.java

3,权限在不同地方的体现:
                public   protected       default     private
同一类中:       ok       ok               ok         ok
同一包中:       ok       ok               ok
子类中:         ok       ok     
不同包中:       ok

*/



PackageDemo1.java

class PackageDemo1 
{
	public static void main(String[] args) 
	{
//		Dog dog = new Dog();
		mypack1.Dog1 dog = new mypack1.Dog1();
		dog.eat();
		System.out.println("Hello World!");
	}
}


/*
javac -d c:\myclass PackageDemo1.java

java PackageDemo1

*/

4. 包知识点四:

import mypack1.Dog2;

class PackageDemo2 
{
	public static void main(String[] args) 
	{
		Dog2 dog = new Dog2();
//		mypack1.Dog1 dog = new mypack1.Dog1();
		dog.eat();
		System.out.println("Hello World!");
	}
}


/*
1. 必须要导入	包.类
2. 还可以使用 mypack1.*; 但是不建议这样做, 
	导包原则:用到哪个类,就导入哪个类
3. 高级编辑器会自动智能导入,不用手动全部操作,只需要一个快捷键

*/


5. Jar知识点五:

package jarpack;

class JarDemo 
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}

/*
	Jar:java压缩包

	1. javac -d . JarDemo.java	//创建jarpack包;

	2. jar -cf hululu.jar jarpack	//创建jar包

	3. set classpath=./hululu.jar	//设置环境变量为jar包目录

	4. java jarpack.JarDemo			//运行

*/





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值