黑马程序员---包(package)笔记
2014-01-14 10:34
92 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
包(package)
对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
类名的全称是 包名.类名。
包也是一种封装形式。
package packa;
import packb.*;
class Demo1
{
public static void main(String[] args)
{
System.out.println("my class Demo1");
ShowDemo s = new ShowDemo();
s.show();
}
}
package packb;
public class ShowDemo
{
public void show()
{
System.out.println("ShowDemo run");
}
}
E:\java1201>javac -d d:\myclass ShowDemo.java
E:\java1201>javac -d d:\myclass Demo1.java
E:\java1201>set classpath=d:\myclass
E:\java1201>java packa.Demo1
classpath
给jvm提供的一个环境变量。
指定类或者包所在的路径。
classpath变量值的最后有分号与无分号的区别。
思考:在开发时,分号是否需要呢?
包之间的访问
被访问的包中的类权限必须是public的。
类中的成员权限:public或者protected
protected是为其他包中的子类提供的一种权限
例程
四种权限
public protected default(默认权限) private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类 ok ok
不同包中 ok
package packc;
public class FuDemo
{
protected void func()
{
System.out.println("Fushow func run");
}
}
package packb;
import packc.*;
public class ShowDemo extends FuDemo
{
public void show()
{
System.out.println("ShowDemo run");
func();
}
}
package packa;
import packb.*;
class Demo1
{
public static void main(String[] args)
{
System.out.println("my class Demo1");
ShowDemo s = new ShowDemo();
s.show();
}
}
package packc;
public class FuDemo
{
protected void func()
{
System.out.println("Fushow func run");
}
} package packb;
import packc.*;
public class ShowDemo extends FuDemo
{
public void show()
{
System.out.println("ShowDemo run");
func();
}
} package packb;
public class DemoC
{
public void method()
{
System.out.println("DemoC");
}
} package packa;
import packb.*;
class Demo1
{
public static void main(String[] args)
{
System.out.println("my class Demo1");
ShowDemo s = new ShowDemo();
s.show();
DemoC c = new DemoC();
c.method();
}
}
import
简化类名。
一个程序文件中只有一个package,可以有多个import。
用来导包中的类,不导入包中的包。
通常写import mypack.Demo;
而不写import mypack.*;为什么?
建议不要让包名重复,建议用URL来定义,因为URL是唯一的:
package cn.itcast.demo
package cn.itcast.test
......
Jar包
Java的压缩包
方便项目的携带。
方便于使用,只要在classpath设置jar路径即可。
set classpath=d:\myclass\mypack.jar
java packa.Demo1
数据库驱动,SSH框架等都是以jar包体现的。
Jar包的操作
通过jar.exe工具对jar的操作。
创建jar包
jar -cvf mypack.jar packa packb
查看jar包
jar -tvf mypack.jar >定向文件
解压缩
jar -xvf mypack.jar
自定义jar包的清单文件
jar -cvfm mypack.jar mf.txt packa packb
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
包(package)
对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
类名的全称是 包名.类名。
包也是一种封装形式。
package packa;
import packb.*;
class Demo1
{
public static void main(String[] args)
{
System.out.println("my class Demo1");
ShowDemo s = new ShowDemo();
s.show();
}
}
package packb;
public class ShowDemo
{
public void show()
{
System.out.println("ShowDemo run");
}
}
E:\java1201>javac -d d:\myclass ShowDemo.java
E:\java1201>javac -d d:\myclass Demo1.java
E:\java1201>set classpath=d:\myclass
E:\java1201>java packa.Demo1
classpath
给jvm提供的一个环境变量。
指定类或者包所在的路径。
classpath变量值的最后有分号与无分号的区别。
思考:在开发时,分号是否需要呢?
包之间的访问
被访问的包中的类权限必须是public的。
类中的成员权限:public或者protected
protected是为其他包中的子类提供的一种权限
例程
四种权限
public protected default(默认权限) private
同一类中 ok ok ok ok
同一包中 ok ok ok
子类 ok ok
不同包中 ok
package packc;
public class FuDemo
{
protected void func()
{
System.out.println("Fushow func run");
}
}
package packb;
import packc.*;
public class ShowDemo extends FuDemo
{
public void show()
{
System.out.println("ShowDemo run");
func();
}
}
package packa;
import packb.*;
class Demo1
{
public static void main(String[] args)
{
System.out.println("my class Demo1");
ShowDemo s = new ShowDemo();
s.show();
}
}
比如packb中有两类,要在packa中全都建立对象访问,这两个类都需要public修饰,这时候是不行的。类前面加了public以后,类名必须与.java文件名保持一致。所以一个.java文件中不能存在两个或两个以上public类或者接口。需要在packb中分别存放成两个.java文件。
package packc;
public class FuDemo
{
protected void func()
{
System.out.println("Fushow func run");
}
} package packb;
import packc.*;
public class ShowDemo extends FuDemo
{
public void show()
{
System.out.println("ShowDemo run");
func();
}
} package packb;
public class DemoC
{
public void method()
{
System.out.println("DemoC");
}
} package packa;
import packb.*;
class Demo1
{
public static void main(String[] args)
{
System.out.println("my class Demo1");
ShowDemo s = new ShowDemo();
s.show();
DemoC c = new DemoC();
c.method();
}
}
import
简化类名。
一个程序文件中只有一个package,可以有多个import。
用来导包中的类,不导入包中的包。
通常写import mypack.Demo;
而不写import mypack.*;为什么?
建议不要让包名重复,建议用URL来定义,因为URL是唯一的:
package cn.itcast.demo
package cn.itcast.test
......
Jar包
Java的压缩包
方便项目的携带。
方便于使用,只要在classpath设置jar路径即可。
set classpath=d:\myclass\mypack.jar
java packa.Demo1
数据库驱动,SSH框架等都是以jar包体现的。
Jar包的操作
通过jar.exe工具对jar的操作。
创建jar包
jar -cvf mypack.jar packa packb
查看jar包
jar -tvf mypack.jar >定向文件
解压缩
jar -xvf mypack.jar
自定义jar包的清单文件
jar -cvfm mypack.jar mf.txt packa packb
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
相关文章推荐
- 黑马程序员JAVA基础学习笔记(一)
- 黑马程序员09——异常笔记
- 【黑马程序员】Objective-C语言学习笔记之HelloWorld(一)
- 黑马程序员之 C#学习笔记:飞行棋地图二维数组实现方法
- 黑马程序员Java培训、Android培训_交通灯系统笔记
- 黑马程序员-OC学习笔记-----封装、继承、多态
- "黑马程序员"交通灯笔记
- 黑马程序员——异常知识点 笔记第八篇
- 黑马程序员 Java学习笔记 (day11)
- 黑马程序员--C语言自学笔记---12fgets、fputs、const、结构体
- 黑马程序员 java学习笔记——集合框架2
- 黑马程序员------毕老师视频笔记第十天------面向对象(包)
- 黑马程序员_学习笔记第11天——多线程1
- 黑马程序员________多线程的理论及应用学习笔记
- 黑马程序员 java学习笔记——枚举
- 黑马程序员-学习笔记java基础-语言概述
- 黑马程序员——IOS学习笔记(Foundation框架(一))
- 黑马程序员--银行业务调度系统笔记…
- 黑马程序员---java学习笔记之IO
- 黑马程序员学习笔记-OC之foundation框架