this
this关键字的使用
简单的说,哪个对象调用,this就代表哪个对象
this注意事项和使用细节
(1)this关键字可以用来访问本类的属性、方法、构造器
(2)this用于区分当前类的成员和局部变量
(3)访问成员方法的语法:this.方法名(参数列表);
(4)访问构造方法(构造器)语法:this(参数列表); 放在第一条语句, 这个语法规则, 构造器间的调用
(5)this不能在类定义的外部使用,只能在类定义的方法中使用。
/*
class A {
public String name = “tom”;
public int age = 1;
public A(String name, int age) {
this.name = name;
this.age = age;
}
}
A a = new A(“smith”, 10);
*/
面试题:a对象的构建流程
- 加载A类结构(A.class), 加载一次,加载方法区
- 在堆中分配空间,有对应的地址
- 完成初始化
(1) 默认初始化 name = null , age = 0
(2) 显示初始化 name = tom, age = 1
(3) 构造器初始化 name = smith , age = 10 - 将对象在堆中的地址,返回给 a
包的三大作用
1.区分相同名字的类
2.当类很多时,可以很好的管理类[模块]
3.控制访问范围
包的命名规则:
只能包含数字、字母、下划线、小圆点.,但不能用数字开头,不能是关键字或保留字
demo.class.exec1 //错误 ,因为 class 是关键字
demo.12a // 错误,不能以 12 数字开头
demo.ab12.oa //对
命名规范!!:
一般是小写字母+小圆点一般是
com.公司名.项目名.业务模块名
举例:
com.sina.crm.user //用户模块
com.sina.crm.order // 订单模块
com.sina.crm.utils //工具类
常用的包
一个包下,包含很多的类,java中常用的包有:
java.lang.* //lang包是基本包,默认引入,不需要再引入.
java.util.* //util 包,系统提供的工具包, 工具类,使用
java.net.* //网络包,网络开发=> 网络开发
java.awt.* //是做java的界面开发,GUI
如何引入包
语法: import 包;
比如 import java.awt.*; // * 表示将该包的所有类和接口引入.
我们引入一个包的主要目的是要使用该包下的类
比如 import java.util.Scanner; 就只是引入一个类Scanner。
包的注意事项和使用细节
(1)package 的作用是声明当前类所在的包,需要放在class的最上面,一个类中最多只有一句package
(2)import指令 位置放在package的下面,在类定义前面,可以有多句且没有顺序要求。
访问修饰符
java提供四种访问控制修饰符号控制方法和属性(成员变量、字段)的访问权限(范围):
(1)公开级别:用public 修饰,对外公开
(2)受保护级别:用protected修饰,对子类和同一个包中的类公开
(3)默认级别:没有修饰符号,向同一个包的类公开.
(4)私有级别:用private修饰,只有类本身可以访问,不对外公开.
4种访问修饰符的访问范围
修饰符使用的注意事项
(1)修饰符可以用来修饰类中的属性,成员方法以及类
(2)只有默认的和public才能修饰类!,并且遵循上述访问权限的特点。
(3)成员方法的访问规则和属性一样.
说明:实际开发中,一个类,对应一个文件
如何理解抽象
我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板)。这种研究问题的方法称为抽象。