面向对象day02

static关键字

static修饰的属性称为静态属性或类变量,没有static修饰的属性称为实例变量

使用static修饰的属性属于类,不属于具体的某个对象

类属性在类首次被加载时初始化,即使没有创建对象,类属性也是存在的

static修饰的方法为类方法或静态方法,不使用static修饰的方法为实例方法,类方法不属于任何对象

静态方法中不能直接访问实例变量和实例方法

在实例方法中可以直接调用类中定义的静态变量和静态方法

实例成员变量和静态成员变量的区别:

1.静态成员属于类,所有对象共享,实例成员属于对象,对象之间私有的。

2.静态成员 通过类名.属性名 / 对象名.属性名 访问,实例成员只能通过 对象名.属性名 访问。

3.两者的初始化时机不同,静态成员在加载类模板的时候就初始化,实例成员是在创建对象(new)的时候初始化。

4.实例方法中可以使用实例成员和静态成员,静态方法中只能使用静态成员。

5.实例方法中可以调用静态方法和实例方法,静态方法中只能调用静态方法,如果要调用实例方法,需要先创建对象,使用对象调用。

6.实例方法中可以使用 this 关键字,静态方法中不能使用。

对象初始化顺序:

1.类第一次加载时,被初始化static成员

2.static代码块:类加载时只执行一次,只能访问类的静态变量和方法

3.初始化实例成员

4.实例代码块:创建对象时会执行,创建多少次对象就会执行多少次

5.构造方法

包的作用:

  1. 存放类

  2. 防止命名冲突

  3. 在更广的范围内,保护类,数据,方法

包的定义:package 包名

包的声明:

当前类所在的包

源文档的第一条非注释性语句,并且原文档只能有一个包声明语句,包名前缀通常是全部小写的ASCII字母,并且是一个顶级域名,通常使用域名的倒写,包名的后续根据不同的公司规定不同

包的导入:

当前类要使用的包

import 包名.类名

同包下的类不需要导包

使用非同包下的类需要导包或或使用全限定类名

java.lang包下的包不需要导包

访问修饰符:

类访问修饰符:public 、package-access

类成员的访问修饰符:public 、protected、 package-access、 private

位置publicprotected包访问修饰符private
同类访问
同包其它类×
同包子类×
非同包子类××
非同包其它类×××
封装

优点:

  • 防止外部数据直接访问类的内部数据,保护数据的安全性

  • 通过限制外部访问,可以更好的控制数据的正确性和完整性

  • 可以隐藏实现类的细节,不需要了解类的内部实现细节,只需要知道如何使用类提供的接口

松耦合尽量减少对象之间的关联性,以降低他们之间的复杂性和依赖性

步骤:

1.修改字段的访问权限

2.设置getter/setter字段方法

3.设置字段的存取限制

封装的意义:

1.隐藏类的内部细节

2.限制外部访问控制数据的正确性和完整性

3.修改类的内部实现,不会影响类的用户

4.提高代码的重用性

遮蔽:

在一个作用域中使用了一个和外层作用域相同的变量名,导致内部变量遮蔽了外部变量,即无法直接访问外部变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值