面向对象之封装

面向对象之封装

定义:影藏事物的属性和实现的细节,仅对外提供公共的访问方式
封装的好处:
	1.隐藏了事物的细节
	2.提高了代码的复用性
	3.提高了安全性
封装的实现:
	使用private关键字进行修饰,被private修饰的成员只能在本类中使用
Setter和Getter
	封装需要搭配set和get方法
	set(设置器)没有返回值,但有参数
	get(获取器)需要返回值,但没有参数

例 封装一个学生类

	//学生类
	public class Student{
		//封装姓名
		private String name;
		//封装成绩
		private int score;
		//通过构造方法设置值
		public Student(String name, int score) {
		this.name = name;
		this.score = score;
		}
		//通过获取器获得姓名
		public String getName() {
			return name;
		}
		//通过设置器设置姓名
		public void setName(String name) {
			this.name = name;
		}
		//通过获取器获得成绩
		public int getScore() {
			return score;
		}
		//通过设置器设置成绩
		public void setScore(int score) {
			this.score = score;
		}
	}
	//测试类
	public class test {
	public static void main(String[] args) {
		//创建学生对象,并设置初始值
		Student s=new Student("张三",100);
		//获取属性
		//未封装的获取方式,这里因为进行过封装所以不能直接获取到值
		同样也不能通过这种方式设置值
		//String str=s.name;
		//需要通过获取器获取
		String str=s.getName();	
	}

属性的初始化顺序

1.将类加载到方法区
2.在堆内存中开辟空间,放入新建对象
3.在栈内存中开辟空间,放对象的引入
4.对象中的属性执行默认初始化
5.对象中的属性进行显示初始化
6.构造方法初始化
7.将对象地址赋值给对象引用

静态

静态属性的特点和作用
	1.静态属性是本类所有对象公用的,静态属性只会初始化一次
	2.不需要有对象,可以直接通过类名调用
注:静态属性在类被加载的时候,进行初始化
   静态属性或静态方法,都可以通过类名调用,也可以通过对象名调用,建议直接通过类名调用
   在静态方法或者静态代码块中不可以使用非静态属性,或非静态方法
	   非静态属性和非静态方法都可通过this调用,所以静态方法中不允许出现this关键词

静态属性和非静态属性的区别

1.修饰符不同
	静态属性使用static修饰
	非静态不使用static修饰
2.所属不同
	静态属性属于类
	非静态属于对象
3.存储内存空间不一样
	静态属性存储在方法区中的静态区域
	非静态属性和对象一起存储在堆内存
4.初始化时间不一样
	静态属性在类被加载的时候初始化一次
	非静态属性每创建一个对象就会进行初始化(默认,显示,构造方法)
5.访问方式不同
	静态属性可以通过类名和对象名访问
	非静态属性只能通过对象名访问

代码块

使用大括号包裹的一段代码就是代码块
	种类:局部代码块 构造代码块 静态代码块 同步代码块
1.局部代码块
	位置:写在方法中
	作用:主要用于限定变量的生命周期
2.构造代码块
	位置:类中,方法之外
	作用:为属性赋值
	注  :和属性的显示初始化时间一样,谁在前就先执行谁
3.静态代码块
	位置:类中,方法之外
	作用:给类中的静态属性初始化,用于只需要执行一次的代码
	注  :静态代码块和静态属性一样,都是在类被加载的时候执行,而且只执行一次
		静态代码块中不可以使用非静态成员
		和静态属性初始化执行时间相同,谁在前就先执行谁			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值