栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java--面向对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java--面向对象

杂项
1.在一个源文件中,只能有一个公共类,但可有任意数目的非公共类。文件名必须与public类的名字匹配。
2.多个源文件,javac xxx.java,只指定包含main的源文件,会自动编译关联的其他源文件。java xxx,xxx为包含main的源文件不含后缀名。
3.每个类都可有一个main方法用于此类单元测试,运行进程时,采用指定名称类的main作为进程的main。
4.类型
- 基本数据类型
- 对象类型
// a可看成指向对象指针,对象实际存储在堆空间。
T a = new T();
// 浅拷贝,指针间赋值。
T b = a;
- 包名
类似命名空间
- 类的导入
一个类可以使用所属包中的所有类,及其他包中的公共类。
import java.util.*;
import java.sql.*;
import java.util.Date;
var deadline = new java.util.Date();
var deadline2 = new Data();

// 后续可用System类的静态方法,静态字段。不必加前缀。
import static java.lang.System.*;
out.println("Hello");
- 类加入包
// 将源文件放到与完整包名匹配的基目录下子目录中。无名包的源文件放在基目录。
// 编译和运行都切换到基目录,再指定路径。
package com.horstmann.corejava;
public class Employee
{
	...
}

// 组织示意
.(base directory)
	com/
		horstmann/
			corejava/
				// 所属包名	com.horstmann.corejava;
				Employee.java
				Employee.class
		mycompany/
			PayrollApp.java
			PayrollApp.class

// 编译&运行。假设此时已经在base directory。
javac com/mycompany/PayrollApp.java
java com.mycompany.PayrollApp
类存储在文件系统的子目录中。类的路径必须与包名匹配。
类文件也可存储在JAR文件中,一个JAR文件中,可包含多个压缩形式的类文件和子目录。
- 包访问
public			可由任意类使用
private		只可由定义它的类使用
默认				可被同一个包中方法访问
- 类路径
为了使类能被多个程序共享,需做到:
1.把类文件放到一个目录中。
如/home/user/classdir。
如希望增加com.horstmann.corejava.Employee类,
则Employee.class类文件就必须位于子目录
/home/user/classdir/com/horstmann/corejava中。
2.将JAR文件放在一个目录中。
如:/home/user/archives
3.设置类路径。类路径是所有包含类文件的路径的集合。
如:
/home/user/classdir:.:/home/user/archives/archive.jar

类路径包括:
1.基目录/home/user/classdir
2.当前目录
3.JAR文件/home/user/archives/archive.jar

archives目录中的所有JAR文件【不包括.class文件】都包含在这个类路径中。
类路径所列出的目录和归档文件是搜寻类的起始点。
一个示例
/home/user/classdir:.:/home/user/archives/archive.jar
假定虚拟机要搜寻com.horstmann.corejava.Employee类的类文件,
它首先查看Java API类。
转而查看类路径。然后查找以下文件:
/home/user/classdir/com/horstmann/corejava/Employee.class
com/horstmann/corejava/Employee.class
com/horstmann/corejava/Employee.class【/home/user/archives/archive.jar中】

编译器查找文件要比虚拟机复杂。
如引用了一个类,而没指定这个类的包,则编译器将首先查找包含这个类的包。
会查看所有的import指令,确定其中是否含这个类。
会在类路径所有位置中搜索各个可能类。如找到了一个以上的类,会编译报错。
- 设置类路径
java -classpath /home/user/classdir:.:/home/user/archives/archive.jar MyProg
// 也可用环境变量
export CLASSPATH=/home/user/classdir:.:/home/user/archives/archive.jar
JAR文件
一个JAR文件是压缩的,既可以包含类文件,也可包含诸如图像和声音等其他类型的文件。
- 创建JAR文件
jar cvf jarFileName file1 file2 ...
- 清单文件
除了类文件,图像,其他资源,每个JAR还含一个清单文件,用于描述归档文件的特殊特性。
清单文件被命名为MANIFEST.MF,它位于JAR文件的一个特殊的meta-INF子目录中。
要想编辑清单文件,需将希望添到清单文件中的行放到文本文件,然后运行
jar cfm jarFileName manifestFileName ...
要创建一个含清单文件的JAR文件,应运行
jar cfm MyArchive,jar manifest.mf com/mycompany/mypkg/*.class
要想更新一个已有的JAR文件的清单,需将增加的部分放置到一个文本文件中,再执行以下
jar ufm MyArchive.jar manifest-additions.mf
- 可执行JAR文件
可使用jar命令中的e选项指定程序的入口点
jar cvfe MyProgram.jar com.mycompany.mypkg.MainAppClass files to add
或者,可在清单文件中指定程序的主类
Main-Class:com.mycompany.mypkg.MainAppClass
启动程序
java -jar MyProgram.jar
- 多版本JAR文件
要增加不同版本的类文件,可使用--release标志
jar uf MyProgram.jar --release 9 Application.class
要从头构建一个多版本JAR文件,可使用-C选项,对应每个版本要切换到一个不同的类文件目录
jar cf MyProgram.jar -C bin/8 . --release 9 -C bin/9 Application.class
面向不同版本编译时,要用--release标志和-d标志来指定输出目录
javac -d bin/8 --release 8 . . .
- 文档注释
利用javadoc可以让文档和注释在一个地方
1.切换到包含想生成文档的源文件的目录
2.如是一个包,应运行
javadoc -d docDirectory nameOfPackage
如文件在无名的包中,应运行
javadoc -d docDirectory *.java
继承
public class Manager extends Employee
{
	added methods and fields
	
	public Manager(String name, double salary, int year, int month, int day)
	{
		super(name, salary, year, month, day);
		bonus = 0;
	}
}
希望调超类Employee中的getSalary方法,而不是当前类的这个方法。需用。
public double getSalary()
{
	return super.getSalary() + bonus;
}
java中继承的基类的方法默认类似c++的virtual修饰的。如不希望基类某方法虚拟,将它标记为final。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294526.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号