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;} }以后, 我們所有的成員變量都要這樣來處理. 簡單方便.
總結
以上是生活随笔為你收集整理的getter和setter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 访问权限
- 下一篇: java 中的 super