今天继续学习java面向对象,学习的知识点有:
- this关键字
- static关键字
- 代码块
- 包
- 访问权限修饰符
- 面向对象特征--封装
this关键字
this关键字的作用是代表当前对象,使用this关键字引用成员变量,和引用成员方法。
在一个类或者构造方法中,我们可以使用this来引用成员变量,区分同名的成员变量和局部变量,格式为: this.成员变量名。
static关键字
static的概念:static变称为静态,可以用它来修饰类的属性、方法、内部类、代码块。
static具有以下特性:
- 随着类的加载而加载;
- 优先于对象存在;
- 修饰的成员,被所有对象所共享;
- 可以在不创建对象的条件下直接调用。
static的属性:
静态属性是类的所有对象共享的, 不管创建了多少个对象,静态属性在内存中只有一个。
static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用 。
在static方法内部只能访问类的static属性,不能访问类的非static属性,static属性先加载。
代码块
代码块的概念:代码块在类中声明,类似于一个没有名字的方法体。
代码块分为实体代码块和静态代码块,静态代码块在类加载时自动调用且仅调用一次,于是否创建对象无关。
实体代码块:
{
*****代码****;
}
静态代码块:
static{
*****代码*****
}
包
包的概念:为了更好的组织类,Java 提供了包机制,用于区别类名的命名空间。
包的作用:
- 避免类重名
- 按照不同功能管理类
- 控制访问权限
包的命名规范:
- 在包名中,可以使用.号来区分包的级别;包名一般情况下是小写
- 第一级 指该项目的类型,如com,org,gov等,
- 第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei 等
- 第三级 指项目的名称,如:bcms,oa,erp,cms等 第四级 指项目模块的名称,如:bean,action,exception等
包可以更好得管理逻辑相关的类,可以控制不同包之间的访问权限 。
当我们要导入外部包的类,使用关键字import将包导入。
访问权限修饰符
访问权限修饰符有:
public(公共的) 用来修饰类、属性、方法。可以被任意类访问。
protected(受保护的) 用来修饰属性、方法。可以被同包类访问,如果不是同包类,必须是该类 的子类才可以访问。
在要在不同包使用时,我们需要先使用extends继承父类,然后再使用。
default(空) 用来修饰类、属性、方法。只能被同包的类访问。
private(私有的)用来修饰属性、方法。 只能在本类中访问。
public class Demo1 {
public int a=1;
protected int b=2;
int c=3;
private int d=4;
public void print(){
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println("这是公共的方法");
}
protected void pro(){
System.out.println("这是受保护的方法");
}
private void pri(){
System.out.println("这是私有方法");
}
void VOID(){
System.out.println("这是空方法");
}
public class TestDemo1 {
public static void main(String[] args) {
Demo1 d1=new Demo1();
System.out.println(d1.a);
System.out.println(d1.b);
System.out.println(d1.c);
d1.print();
d1.pro();
d1.VOID();
}
}
面对对象的特征
面对对象的三大特征:封装,继承,多态
封装
封装的概念 :将类的某些信息隐藏在类内部,不允许外部程序直接访问, 而是通过该类提供的方法来实现对隐藏信息的操作和访问 。
封装的好处:
- 隐藏类的实现细节
- 只能通过规定方法访问
- 方便我们加入控制语句
- 方便修改实现