getter和setter
getter和setter
我們先不管getter和setter是啥. 來(lái)看一段代碼package com.lewen.day17; public class Person {String name;int age;public void chi(){System.out.println(this.name+"在吃東西");}}寫(xiě)一個(gè)測(cè)試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());} }沒(méi)毛病. 對(duì)吧. 程序也可以正常執(zhí)行.
但是. 大家想一下. 如果我寫(xiě)這么一行代碼. 你琢磨琢磨程序報(bào)錯(cuò)不
p.age = -1;
不報(bào)錯(cuò). 但是邏輯通順么? 一個(gè)人活了這么多年. 還欠人家一歲. 這就逗比了. 也就是說(shuō). 我們的成員變量在很多情況都是不可以直接進(jìn)行賦值的. 這樣很容易產(chǎn)生邏輯問(wèn)題. 程序雖然不會(huì)報(bào)錯(cuò). 但是邏輯不通. 那怎么辦呢? 很簡(jiǎn)單. 不讓外界直接訪問(wèn)不就行了. 加上private.
public class Person {private String name;private int age;public void chi(){System.out.println(this.name+"在吃東西");}}加上是加上了. 但是這樣的話. 我的Test里面就報(bào)錯(cuò)了啊. 私有的. 不能隨意訪問(wèn)啊. 那也就是說(shuō). 此時(shí)還需要一個(gè)能夠給age賦值這樣的一個(gè)功能. 還需要一個(gè)外界能獲取到age的信息的這樣的一個(gè)功能. 對(duì)吧? 前面說(shuō)過(guò). 對(duì)功能或者動(dòng)作的封裝 —> 方法~~~
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 + "在吃東西");} }注意, 此時(shí)我的age就不會(huì)被外界干擾了. 即使設(shè)置成負(fù)數(shù). 也會(huì)置零.
測(cè)試類(lèi):
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保護(hù)起來(lái).然后給出set和get方法, 在外界訪問(wèn)這個(gè)屬性的時(shí)候,就需要使用set和get方法了. 那這里的get和set就是getter和setter方法.
相信大家已經(jīng)滿滿的惡意了. 這么麻煩. 受得了受不了~ 別擔(dān)心. 我們用的是IDEA. 高級(jí)貨. 必然有高級(jí)的辦法來(lái)解決
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;} }以后, 我們所有的成員變量都要這樣來(lái)處理. 簡(jiǎn)單方便.
總結(jié)
以上是生活随笔為你收集整理的getter和setter的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 访问权限
- 下一篇: java 中的 super