java面向对象基础——封装

java面向对象基础——封装

封装的概念:

把对象的属性和功能结合作为一个独立的整体,并尽可能的隐藏对象的内部实现细节,比如在家看电视,电视机制造商把一些复杂的东西全部给封在电视机的后壳里,不让用户去更改,我们只需要按遥控器上的按钮就行了,而不需要管其内部是怎么实现的,有什么样的功能,晶体管是怎么显像的,我们都不需要管,所以简单来说,需要让用户知道的,我们就把他显示出来,不需要让用户知道的,我们就把他隐藏起来,就是封装

封装的好处

  1. 提高代码的安全性
  2. 提高代码的复用性
  3. “高内聚”:封装细节,便于修改内部代码,提高可维护性
  4. “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作
没有封装的代码出现的问题
package com.boker.oo;

public class TestPotting {
	public static void main(String[] args) {
		Student stu = new Student(); 	//创建一个学生对象
		stu.age = 23333333;		//给学生的年龄赋值
		System.out.println(stu.age);
	}
}
//学生类
class Student{
	int age;
	int height;
	String name;
}

1. 没有被封装的属性到处都可以用
2. 年龄不可能为23333333,因为没有对属性赋值做出限制可以随意的赋值

访问修饰符

java中有四种访问修饰符,来控制哪些需要显示,哪些需要隐藏,下面是由高到低介绍四种访问修饰符

  1. public:公共的,公开的,当前项目下的所有类都可以访问
  2. protected:受保护的,当前包中的所有类和其他包中的子类都可以访问
  3. default:默认的,当前包中的所有类可以访问
  4. private:私有的,只能在自己的类中被访问

下列用一张图来表示他们的范围(√表示可以被访问):
在这里插入图片描述

下列是private修饰符实例:

package com.boker.oo;
public class TestPotting {
	public static void main(String[] args) {
		private int age;
		stu.age = 23333333;		// 此时私有的age被同一个类所访问
	}
}

当我们要访问私有属性的时候可以写set和get方法来访问

package com.boker.oo2;

public class TestPotting{
	public static void main(String[] args) {
		Student stu = new Student();
		stu.setAge(123);
	}
}

class Student {
	private int age;
	//获取age属性
	public int getAge() {
		return age;
	}
	//设置age属性
	public void setAge(int age) {
		if(age > 0 && age <100) {
			this.age = age;
		}else {
			System.out.println("输入不合法");
		}
	}
}

此时输出结果如下:
在这里插入图片描述
此时用户在输入年龄的时候就被添加上了限制了
注意boolean类型的是用is来赋值 如下:

package com.boker.oo2;
public class TestPotting{
	public static void main(String[] args) {
		Student stu = new Student();
		stu.isSex();
	}
}
	
class Student {
	private int age;
	private boolean sex;
	
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean sex) {
		this.sex = sex;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值