20210922
main方法为什么必须为public,static
public: 保证这个类被访问到,由虚拟机JVM使用,直接创建方法,没有实例对象
由于JVM需要在类外调用main方法,而且JVM运行main方法时,并没有创建main方法所在的类的一个实例对象,所以它只能通过类名来调用main方法作为程序的入口,因而该方法必须是static。
方法重载
一个类中名字相同的多种方法。
通过参数不同(个数/数量)不同来辨别重载方法。
注意返回值可以相同或者不同。例:
float add(intx, inty) int add(int x int y) 不允许
包
概念
多个类可能出现类名冲突,使用包来管理类。
可以实现类的共享与复用
同一个包的类在默认情况下可以互相访问
同一包中类名不可以重复
包的声明
package pkg1[.pkg2[.pkg3]...];
1.Java源文件 只能在第一条语句,前只可由注释/空行
2.一个文件只可有一个包
3.包名与对应文件夹名大写一样
4.包层次的根文件夹由ClassPath来确定 (已不需要配置)
包的 命名
1.小写字母,不重复
2.建议
-
Internet 反序
-
_代替
包与目录
包名即文件夹名,即目录名。
目录名不一定是报名
若当前包中有 没有声明的类: classpath `;(当前) 地址
引入包
import[pkg1[.pkg2]].(classname|*);
可以用 * 代替所有类
java 编译器为所有程序自动引入包java.lang.
若路径相同,也可能引入不同的包
例: cn.edu.hitwh*
cn.edu.hitwh.pub*
编译单元/编译/运行
-
编译单元=java源代码文件
包的声明+import+类和接口的声明
-
只有一个public,类名与文件名相同
其他类是辅助类,编译后产生一个class文件。
-
编译:
通过javac.exe 引导类/扩展类/用户类
-
运行
-
未声明包 classpath配置
-
有包名 使用定位到该文件夹: cd +文件名(即包名)
-
类与成员的访问
1.类
public 与缺省
同一包中 √ √
不同包中 √ ×
2.类成员
-
共有 public 被任何
-
保护
-
私有
-
默认
| 类型 | private | 无修饰 | protected | public |
|---|---|---|---|---|
| 同一类 | yes | yes | yes | yes |
| 同一包中的子类 | no | yes | yes | yes |
| 同一包中的非子类 | no | yes | yes | yes |
| 不同包中的子类 | no | no | yes | yes |
| 不同包中的非子类 | no | no | no | yes |
-
get/set 方法
-
get : 读取
public<fieldType>get<FieldName>(){
return<fieldName>
} -
set: 修改属性
public void set<FieldName>(<fieldType>
<paramName>) {
<fieldName> = <paramName>;
}
关键词
this
super
null
SomeClass aSomeClass=null
final
-
修饰变量
实例变量与类变量
使用之前初始化
-
修饰方法
不能被子类覆盖
final returnType methodName(paramalist)
-
修饰类
不可被继承,安全,类比较完善
保证String类型的唯一性
\

浙公网安备 33010602011771号