java 类与对象(续)
package
-
package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包
-
一个源文件 至多写一条包语句
-
源程序中省略了package语句,源文件中所定义命名的类被隐含地认为是无名包的一部分
package 包名
import ****
import ****
class ***{
}
import
一个类可能需要另一个类声明的对象作为自己的成员或方法中的局部变量
-
如果这两个类在同一个包中,当然没有问题
-
如果一个类想要使用的那个类和它不在一个包中,就需要学习import语句
-
import语句引入非类库中有包名的类
-
如果一个无包名类想使用无名包中的类,只要将这个无包名的类的字节麻和当前类保存在同一目录中即可。
import java.util.*;//引入java.util包中所有的类
import java.until.Date;//引入java.until包中的Date类
import tom.jiafei.*;
访问权限
-
如果在关键字class前面加上public关键字,可以在任何另外一个类中,使用public类创建对象
-
如果一个类不加public修饰,那么另外一个类中使用友好类创建对象时,要保证它们是在同一包中
-
不能用protected和private修饰类(不包括inner class)
-
访问限制修饰符按访问权限从高到低的排列顺序是:public、protected、友好的、private。
基本类型的类包装
Byte、Integer、Short、Long、Float、Double和Character类
- 基本类型只有值,而包装类型则具有与它们的值不同的同一性(identity)。这个同一性是指,两个引用是否指向同一个对象,如果指向同一个对象,则说明具有同一性。
自动装箱 就是允许把一个基本数据类型的值直接赋值给基本数据类型相对应的类的实例
**自动拆箱 **就是允许把基本数据类型的类的实例当作相应的基本数据类型来使用
int x = number+number;
int x = number.intValue()+number.intValue();
两者的详解https://www.cnblogs.com/xiaofuzi123456/p/11362630.html
字节码和源码
计算机不能直接执行源代码,必须用一个叫编译器的程道序(javac.exe)将源代码
翻译成字节码内,然后让一个叫解释器的程序(java.exe)去执行字节码,即运行程序。
反编译和文档生成器
javap.exe可以将字节码反编译为源码,查看源码类中的public方法名字和public成员变量的名字
javadoc Example.java javadoc.exe可以制做源文件的html格式文档
-help --help -? 输出此用法消息
-version 版本信息,其实是当前javap所在jdk的版本信息,不是class在哪个jdk下生成的。
-v -verbose 输出附加信息(包括行号、本地变量表,反汇编等详细信息)
-l 输出行号和本地变量表
-public 仅显示公共类和成员
-protected 显示受保护的/公共类和成员
-package 显示程序包/受保护的/公共类 和成员 (默认)
-p -private 显示所有类和成员
-c 对代码进行反汇编
-s 输出内部类型签名
-sysinfo 显示正在处理的类的系统信息 (路径, 大小, 日期, MD5 散列)
-constants 显示静态最终常量
-classpath <path> 指定查找用户类文件的位置
-bootclasspath <path> 覆盖引导类文件的位置
jar文件
生成可执行jar文件
反汇编
机器语言转换为汇编语言代码、低级转高级