一、关键字-this的使用
1.在Java中,this关键字比较难理解,它的作用和其词义很接近。
它在方法内部使用,即这个方法所属对象的引用;
它在构造器内部使用,表示该构造器正在初始化的对象。
this理解为当前对象或当前正在创建的对象(构造器中),当前正在操作本方法的对 象称为当前对象。
2.this 可以调用类的属性、方法和构造器 。
在任意方法或构造器内,如果使用当前类的成员变量或成 员方法可以在其前面添加this, 增强程序的阅读性。不过,通 常我们都习惯省略this。
当形参与成员变量同名时, 如果在方法内或构造器内需要 使用成员变量,必须添加this来 表明该变量是类的成员变量。
使用this访问属性和方法时, 如果在本类中未找到,会从父 类中查找。
this调用构造器
① 我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器。
② 构造器中不能通过"this(形参列表)"方式调用自己。
③ 如果一个类中有n个构造器,则最多有 n - 1构造器中使用了"this(形参列表)"。
④ 规定:"this(形参列表)"必须声明在当前构造器的首行。
⑤ 构造器内部,最多只能声明一个"this(形参列表)",用来调用其他的构造器。
3.什么时候使用this关键字呢?
当在方法内需要用到调用该方法的对象时,就用this。 具体的:我们可以用this来区分属性和局部变量。 比如:this.age= age;
public String getName(){
return this.name;
}
public void setAge(int age){
this.age = age;
}
在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器。
class Person{ // 定义Person类
private String name ;
private int age ;
public Person(){ // 无参构造器
System.out.println("新对象实例化");
}
public Person(String name){
this(); // 调用本类中的无参构造器
this.name = name ;
}
public Person(String name,int age){
this(name) ; // 调用有一个参数的构造器
this.age = age;
}
public String getInfo(){
return "姓名:" + name + ",年龄:" + age ;
}
}
二、关键字-package的使用
1.package(包)使用说明
package语句作为Java源文件的第一条语句,指明该文件中定义的类所在 的包。(若缺省该语句,则指定为无名包)。它的格式为: package 顶层包名.子包名 ; 使用package声明类或接口所属的包,声明在源文件的首行。
包对应于文件系统的目录,package语句中,用 “.” 来指明包(目录)的层次; 每"."一次,就代表一层文件目录。
包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)、“见名知意”,通常用小写单词标识。
2.包的作用
包帮助管理大型软件系统:将功能相近的类划分到同一个包中。比如:MVC的设计模式。
包可以包含类和子包,划分项目层次,便于管理 。
解决类命名冲突的问题。
控制访问权限 。
3.MVC的设计模式。
MVC是常用的设计模式之一,将整个程序分为三个层次:视图模型层,控制器层,与 数据模型层。这种将程序输入输出、数据处理,以及数据的展示分离开来的设计模式 使程序结构变的灵活而且清晰,同时也描述了程序各个对象间的通信方式,降低了程 序的耦合性。
4.JDK中主要的包介绍
1. java.lang----包含一些Java语言的核心类,如String、Math、Integer、 System和 Thread,提供常用功能
2. java.net----包含执行与网络相关的操作的类和接口。
3. java.io ----包含能提供多种输入/输出功能的类。
4. java.util----包含一些实用工具类,如定义系统特性、接口的集合框架类、使用与日 期日历相关的函数。
5. java.text----包含了一些java格式化相关的类
6. java.sql----包含了java进行JDBC数据库编程的相关类/接口
7. java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这 些类被用来构建和管理应用程序的图形用户界面(GUI)。 B/S C/S
三、关键字-import的使用
1. 在源文件中使用import显式的导入指定包下的类或接口。import com.bcbd.java.Account;
2. 声明在包的声明和类的声明之间。
3. 如果需要导入多个类或接口,那么就并列显式多个import语句即可。
4. 举例:可以使用java.util.*的方式,一次性导入util包下所有的类或接口。
5. 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
6. 如果在代码中使用不同包下的同名的类。那么就需要使用类的全类名的方式指明调用的 是哪个类。全类名com.bcba.java.Person p=new com.bcbd.java.Person();
7. 如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。
8. import static组合的使用:调用指定类或接口下的静态的属性或方法。如:import static java.lang.Math.*;
9.同一个包下,不能命名同名的接口、类。 不同的包下,可以命名同名的接口、类。