一.package包
1.如何定义包 在类中的第一行位置,使用 "package 包名" 语句进行定义
如: package cn.itcast;
2.编译带包的类 javac -d 目录 源文件名.java
如: javac -d . PackageDemo.java
3.运行带包的类 java 包名.类名
如: java cn.itcast.Package
4.使用带包的类 a.加上包名,直接使用"包名.类名" 如: cn.itcast.Person p = new cn.itcast.Person();
b.由于上面的方法使用麻烦,所以可以通过import语句进行导入使用: --import cn.itcast.*; //使用"*",表示导入当前包中所有的类,
注:
请注意:jvm并不会直接将所有的类都加载进来!!!
先在当前包目录中进行查找类文件,若是找不到就会查找导入的包路径,然后将所需要的类加载进来.
--import cn.itcase.Person; (建议使用这种方式!!)
注: 直接查找导入的包路径的那个类!!!
5.有包类与无包类之间的访问: a.无包类可以访问有包类,导入即可
注:
无包类访问有包类,且是使用"*"导入时,需要注意一个特殊情况:
先编译带包的Person类: javac -d . Person.java,就会在当前目录下生成带包名的类文件;
再编译PackageDemo.java: javac -d . PackageDemo.java,就会报错!!
原因:
先在当前目录中进行查找类文件,结果没找到Person.class,
但此时编译器发现存在Person.java文件存在,就会去尝试以默认包的方式进行编译带包名的Person.java,
结果就出错了.
当我们将Person.java从当前目录移除后,重新编译PackageDemo.java,可以正常编译通过!!
所以,我们还是应该将每个类都加上包名!!!!
b.有包类不可以访问有包类,因为无法导入包名
6.注意点 a.必须使用public修饰后,才能将带包名的类让其他包中的类进行导入访问!!!
因为:
类的权限访问修饰符只能是public 和 default,而default就是包访问限制修饰符,所以必须使用public,
另外,类加上public后,必须保证与文件名一致.
b.当在一个类中,同时导入了两个不同包中的相同名称的类时,jvm是无法区分的,需要我们使用时以"包名.类名"方式使用!!!
c.若在代码中直接使用类名,默认是访问同一包中的类!
7.练习: 编译两个Person.java在不同的包中
答: 对Person.java和PackageDemo.java,编译和运行效果:
F:\>javac -d . C:\Users\Acer\Desktop\day11-myCode\package\Person.java
F:\>javac -d . C:\Users\Acer\Desktop\day11-myCode\package\PackageDemo.java
F:\>java cn.itcast.PackageDemo
Person(书豪, 24)
Person(玉凤, 30)
二.jar
1.什么是jar jar是一种java文件的压缩格式,
通常我们将编译好的class文件,进行压缩打包成一个jar文件
2.如何打jar包: 需要使用到jar.exe,使用方式为:
jar -cvf jar文件名.jar 要打包的文件或文件夹
如:
jar -cvf myFirstJar.jar cn org
3.如何使用jar包: 打包完成后,需要设置classpath
如:
set classpath= . ; f:\code\myFirstJar.jar
4.如何执行jar文件: 需要设置jar包中的META-INF文件夹中的MANIFEST.MF文件中指定Main-Class
添加:
Main-Class: cn.itcast.PackageDemo //MainClass就是运行jar包时要执行的类
然后运行jar文件:
java -jar myFirstJar.jar
注: 打包,执行jar包的过程:
F:\>jar -cvf myFirstJar.jar cn
标明清单(manifest)
增加:cn/(读入= 0) (写出= 0)(存储了 0%)
增加:cn/it315/(读入= 0) (写出= 0)(存储了 0%)
增加:cn/it315/Person.class(读入= 1168) (写出= 636)(压缩了 45%)
增加:cn/itcast/(读入= 0) (写出= 0)(存储了 0%)
增加:cn/itcast/PackageDemo.class(读入= 542) (写出= 379)(压缩了 30%)
F:\>set classpath=.;F:\myFirstJar.jar
F:\>java -jar myFirstJar.jar
Person(书豪, 24)
Person(玉凤, 30)
5.可以使用exe4j工具将jar文件,转换成一个可执行的exe
三.访问控制符
1.各种权限修饰符 private: 私有的, 只有当前类中可以访问
default(package): 默认的, 当前类, 同一个包中的类可以访问
protected: 受保护的, 当前类, 同一个包中的类, 不同包的子类都可以访问
public: 公有的, 所有类都可以访问
2.权限修饰符的用法 修饰成员变量, 方法, 内部类, 构造函数: 四种都可以使用
修饰类, 只能用public或者默认的!!!
四.Eclipse的使用:
1.什么是Eclipse Eclipse是IBM开发一款免费的IDE, 可以从www.eclipse.org下载. 目前最新版本3.7.2(2012-4-05)
分为Eclipse和EclipseForJavaEE
注:
现在很多在使用MyEclipse, MyEclipse是Eclipse的一款插件, 是收费的.
2.启动方式 将eclipse-jee-indigo-SR2-win32.zip解压到硬盘, 进入eclipse文件夹, 执行eclipse.exe
选择工作空间, 勾选use this as default, 设置为默认工作空间
注:
工作空间路径下会生成配置文件".metadata"
3.编写程序 a.创建工程
CTRL + N 或 点击"New", 输入java project
输入工程名, finish
在工作空间会创建出一个以工程名命名的文件夹
b.创建包
在src文件夹上按CTRL + N
创建package, 输入包名
c.创建类
在创建好的包上, CTRL+N, 创建Class, 指定类名, 勾选main方法, finish
d.编写代码
在编辑器中编写代码, 在保存的同时, 工具会自动编译
源代码保存在工作空间工程文件夹下的src文件夹中, class文件保存在bin目录中
e.运行
点击工具栏中的运行
4.界面设置 窗口:
关闭页面中所有窗口, 在window - show view - other - 搜索console和package explorer等窗口名称
显示行号:
在代码编辑处,右键点击行开头 - show line number
5.文本编辑功能 复制行: Ctrl+Alt+Down
删除行: Ctrl+D
移动行: Alt+Down/Alt+UP
插入行: Shift+Enter/Ctrl+Shift+Enter
单行注释: Ctrl+/
多行注释: Ctrl+Shift+/,Ctrl+Shift+\
格式化代码: Ctrl+Shift+F
6.自动提示 内容帮助:Alt+/
自动修复:Ctrl+1
注: 修改快捷键:Window - Preference - 输入"keys",回车即可输入关键字查找
如:内容帮助就是:content assist
修改字体:
window - preferences - general - appearance - color and font - basic - text font
7.自动生成代码 右键 - source或Alt+Shift+S:
生成GET和SET方法: Generate getters and setters - r
生成有参构造函数: Generate contsructor using fields - o
生成无参构造函数: Generate contsructor from superclass - c
生成toString方法: Generate toString - s
生成equals方法: Generate hashCode and equlas - h
8.重构代码 改名: Alt+Shift+R
导出方法:选中完整语句后,Alt+Shift+M
导出变量:选中需要的变量值,Alt+Shift+L
9.环绕代码 选中代码 - Surround with
可以选择环绕for循环, if判断, try..catch等.
10.导入工程 Package Explorer中右键 - Import - General - Existing project into workspace - Browse - 选中要导入的工程
注意: 同名工程不能导入!!!