zoukankan      html  css  js  c++  java
  • Java入门系列-15-封装

    为什么要封装

    Student stu=new Student();
    stu.age=-10;
    

    上面的代码中 age 属性被随意访问,容易产生不合理的赋值

    什么是封装

    封装:将类的某些信息隐藏在内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

    封装是面向对象三大特征之一

    封装后隐藏了类的实现细节,方便我们加入控制语句保证数据安全性,方便修改实现。

    Java 中实现封装可以用以下3步实现:

    1.修改属性的可见性,设为 private (类外部无法访问)

    2.创建共有的 getter/setter 方法用于属性读写

    3.在 getter/setter 方法中加入属性控制语句

    public class Student {
    	private String name;
    	private int age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		if(age>0&&age<=100) {//年龄大于0小于100
    			this.age = age;
    		}else {
    			this.age=18;//默认值
    		}
    	}
    	public static void main(String[] args) {
    		Student stu1=new Student();
    		//给属性赋值
    		stu1.setAge(10);
    		stu1.setName("张三");
    		//使用属性的值
    		System.out.println(stu1.getName()+" 的年龄为:"+stu1.getAge());
    		Student stu2=new Student();
    		stu2.setAge(110);
    		stu2.setName("李四");
    		System.out.println(stu2.getName()+" 的年龄为:"+stu2.getAge());
    	}
    }
    

    在使用 private 关键字修饰属性之后,就不能再直接访问属性了,而是需要通过 getter 和 setter 方法进行取值和赋值。

    在 Eclipse 中可以使用 Shift+Alt+S+R 自动生成 getter/setter

    在 Idea 中使用 Alt+Insert 后选择 Getter and Setter

    搜索关注公众号「享智同行」,第一时间获取技术干货

  • 相关阅读:
    Spring Boot从Controller层进行单元测试
    CentOS7搭建Flume1.6环境
    CentOS7安装Zookeeper3.4.11+HBase1.3.3
    Hadoop1.x的单点问题与Hadoop2.x HA原理
    Hadoop2.x——Yarn原理
    CentOS7安装scala2.11.8+spark2.0.2
    CentOS7搭建Hive1.2.2+mysql5.7
    搭建集群环境(CentOS7+Hadoop2.6.1+SSH)
    消除“if...else”实战
    SpringCloud Eureka服务治理机制
  • 原文地址:https://www.cnblogs.com/AIThink/p/9808437.html
Copyright © 2011-2022 走看看