• getter和setter


    getter和setter

    我们先不管getter和setter是啥. 来看一段代码
    package com.lewen.day17;
    public class Person {
         String name;
         int age;
         public void chi(){
             System.out.println(this.name+"在吃东西");
         }
     }
    
    写一个测试Person的
    package com.lewen.day17;
    public class TestPerson_1 {
        public static void main(String[] args) {
            Person_1 p = new Person_1();
    //        p.name = "lewen";
    //        p.age = 18;
            p.setName("元贞");
            p.setAge(18);
            System.out.println(p.getAge());
        }
    }
    

    没毛病. 对吧. 程序也可以正常执行.

    但是. 大家想一下. 如果我写这么一行代码. 你琢磨琢磨程序报错不

    p.age = -1;

    不报错. 但是逻辑通顺么? 一个人活了这么多年. 还欠人家一岁. 这就逗比了. 也就是说. 我们的成员变量在很多情况都是不可以直接进行赋值的. 这样很容易产生逻辑问题. 程序虽然不会报错. 但是逻辑不通. 那怎么办呢? 很简单. 不让外界直接访问不就行了. 加上private.

    public class Person {
         private String name;
         private int age;
         public void chi(){
             System.out.println(this.name+"在吃东西");
         }
     }
    

    加上是加上了. 但是这样的话. 我的Test里面就报错了啊. 私有的. 不能随意访问啊. 那也就是说. 此时还需要一个能够给age赋值这样的一个功能. 还需要一个外界能获取到age的信息的这样的一个功能. 对吧? 前面说过. 对功能或者动作的封装 —> 方法~~~

    package com.lewen.day17;
    
    public class Person_1 {
        private String name;
        private int age;
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            if (age < 0) {
                this.age = 0;
            } else {
                this.age = age;
            }
        }
    
        public void chi() {
            System.out.println(this.name + "在吃东西");
        }
    }

    注意, 此时我的age就不会被外界干扰了. 即使设置成负数. 也会置零.

    测试类:

    package com.lewen.day17;
    
    public class TestPerson_1 {
        public static void main(String[] args) {
            Person_1 p = new Person_1();
    //        p.name = "lewen";
    //        p.age = 18;
            p.setName("元贞");
            p.setAge(18);
            System.out.println(p.getAge());
    
        }
    
    }

        OK. 本例中, 我们把成员变量用private保护起来.然后给出set和get方法, 在外界访问这个属性的时候,就需要使用set和get方法了. 那这里的get和set就是getter和setter方法.

    相信大家已经满满的恶意了. 这么麻烦. 受得了受不了~ 别担心. 我们用的是IDEA. 高级货. 必然有高级的办法来解决

    public class Job {
        private String title;
        private int salary;
    }

    快捷键: 空白处, 右键-> generate -> getter and setter -> ctrl + A -> OK ! enjoy~~~~

    package com.lewen.day17;
    
    public class Job {
        private String title;
        private int salary;
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public int getSalary() {
            return salary;
        }
    
        public void setSalary(int salary) {
            this.salary = salary;
        }
    }

    以后, 我们所有的成员变量都要这样来处理. 简单方便.

  • 相关阅读:
    字典
    列表
    重要的方法
    一笔"狗"销,"猪"事顺利!!!
    基础数据类型
    循环,格式化,运算符
    算法——三角形图形
    算法——字母金字塔
    算法——二进制求和
    Python power函数
  • 原文地址:https://www.cnblogs.com/wenyule/p/12208479.html
Copyright © 2020-2023  润新知