一.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 - 选中要导入的工程  
 注意:   同名工程不能导入!!!