java基础之封装

面向对象的三个重点:封装、继承和多态

概念:把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(方法),才能对数据进行操作。
比如,对电视机的操作就是典型的封装

理解和好处:
1.隐藏实现细节:调用写好的方法就行
2.可以对数据进行验证,保证安全性

封装的实现:
1.将属性进行私有化(不能直接修改属性)
2.提供一个公共的(public)set用于对属性判断并赋值
public void setxxx(类型 参数名){//xxx表示某个属性
//加入验证的业务逻辑
属性=参数名;
}
3.提供一个公共的(public)get方法,用于获取属性的值
public 数据类型 getxxx(){//权限判断,xxx某个属性的值
return xxx;
}

练习:
总结:
1.两个快捷键的使用
2.用set和get方法对private的属性进行操作
可以增加权限的判断,增加业务逻辑

package com.stu;

public class encapsulation01 {
    /*
    那么在iava中如何实现这种类似的控制呢?
    请大家看一个小程序(Encapsulation01.java),不能随便査看人的年龄,工资等隐私,
    并对设置的年龄进行合理的验证。
    年龄合理就设置,否则给默认年龄,必须在 1-120,年龄, 工资不能直接査看, name的长度在 2-0字符。之间
     */
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("jack00000");
        person.setAge(300);
        person.setSalary(30000);
        System.out.println(person.info());//这里是输出返回的字符串
    }
}


class Person{
    public String name;//名字公开
    private int age;//age私有化
    private double salary;//..


    //自己手写get和set方法太慢,我们可以使用快捷键
    //alt+insert

    //运行快捷键:alt+u+u
    public void setName(String name){
        //限制:名字在2~6个字符
        //相当于增加了业务逻辑
        if(name.length()>=2&&name.length()<=6){
            this.name = name;
        }else {
            System.out.println("名字的长度不对,需要默认名字");
            this.name="无名人";
        }


    }
    public String getName(){
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        //限制:年龄在1~120
        if(age>=1&&age<=120){
            this.age = age;
        }else {
            System.out.println("你设置的年龄不对,年龄需要在1~120,给默认年龄18");
            this.age=18;
        }
    }

    public double getSalary() {
        //增加对当前对象的权限判断
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }


    //在返回字符串这里,我一开始有点懵了
    public String info(){
        return "信息为  name=" + name + " age=" + age + " salary=" + salary;
    }
}
posted @   f-52Hertz  阅读(1)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示