摘要:封裝什么是封裝封裝可以認(rèn)為是一個(gè)保護(hù)屏障,防止代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問(wèn)。封裝最主要的功能在于我們可以修改自己的實(shí)現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。
Java封裝 1.什么是封裝
封裝可以認(rèn)為是一個(gè)保護(hù)屏障,防止代碼和數(shù)據(jù)被外部類定義的代碼隨機(jī)訪問(wèn)。封裝最主要的功能在于我們可以修改自己的實(shí)現(xiàn)代碼,而不用修改那些調(diào)用我們代碼的程序片段。封裝加強(qiáng)了代碼的安全性。
2.封裝的優(yōu)點(diǎn)1.良好的封裝能夠減少耦合性
2.類內(nèi)部的結(jié)構(gòu)可以自由修改
3.隱藏信息,增強(qiáng)安全性
修改屬性的可見(jiàn)性來(lái)限制對(duì)屬性的訪問(wèn)private
public class Person { private String name; private int age; }
2.對(duì)每個(gè)值屬性提供對(duì)外的公共方法訪問(wèn),使用get,set方法
public class Person{ private String name; private int age; ? public int getAge(){ return age; } ? public String getName(){ return name; } ? public void setAge(int age){ this.age = age; } ? public void setName(String name){ this.name = name; } }代碼實(shí)例
public class Dog { // 靜態(tài)變量 private String name; private int health;// 健康值 private int love; private String strain;// 寵物的品種 public void show() { System.out.println("我叫" + name + ",現(xiàn)在健康值是:" + health + ",親密度是:" + love + ",品種是:" + strain); } public Dog() { } public Dog(int health, int love, String strain) { this.health = health; this.love = love; this.strain = strain; } // 不能夠輕易的可以通過(guò)對(duì)象名.屬性名來(lái)修改數(shù)據(jù) 只提供一個(gè)方法給他 具體參數(shù)合法性判斷由我們自己來(lái)決定 public void setHealth(int health) { if (health < 0 || health > 100) { System.out.println("健康值是0-100,默認(rèn)值是60"); this.health = 60; return; } this.health = health; } public int getHealth() { return this.health; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
public class Demo02 { public static void main(String[] args) { // TODO Auto-generated method stub Dog dog = new Dog(); // 封裝屬性 外部觀察不到 只能看到相對(duì)應(yīng)的方法 并且可以在方法里面實(shí)現(xiàn)控制 dog.setHealth(1001); dog.setName("哈哈"); System.out.println(dog.getName()); System.out.println(dog.getHealth()); // 沒(méi)有封裝屬性 可以隨意的查看對(duì)象的屬性 Dog2 dog2 = new Dog2(); dog2.health = -100; dog2.show(); } }
public class Demo01 { public static void main(String[] args) { // TODO Auto-generated method stub // 人有姓名 年齡 身高 體重 使用封裝思想來(lái)創(chuàng)建類 Person person = new Person(); person.setName("張三"); person.setAge(18); person.setHeight(175); person.setWeight(130); System.out.println(person.toString()); } } class Person { private String name; private int age; private int height; private int weight; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getHeight() { return height; } public void setHeight(int height) { if (height < 0) { this.height = 0; return; } this.height = height; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", height=" + height + ", weight=" + weight + "]"; } public int getWeight() { return weight; } public void setWeight(int weight) { if (weight < 0) { this.weight = 0; return; } this.weight = weight; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72842.html
摘要:本文繼續(xù)講封裝。上一篇樂(lè)字節(jié)垃圾回收機(jī)制和語(yǔ)句這次講述繼承與權(quán)限修飾。通過(guò)繼承,子類自動(dòng)擁有了基類的所有成員成員變量和成員方法。一覽無(wú)遺子承父業(yè)兒子自己使用家庭和睦占為已有。 本文繼續(xù)講Java封裝。上一篇:樂(lè)字節(jié)Java|GC垃圾回收機(jī)制、package和import語(yǔ)句 這次講述JavaBean、繼承與權(quán)限修飾。showImg(https://segmentfault.com/im...
摘要:對(duì)象是公布其接口。節(jié)選自百度百科我對(duì)于封裝的理解,可能還有一個(gè)步驟就是抽離,首先你要清楚在一個(gè)對(duì)代碼中你應(yīng)該抽離那些屬性方法,有了這些為基礎(chǔ)才能更好的做好封裝。節(jié)選自百度百科因?yàn)槭菦](méi)有重載的概念的所以要自己編寫(xiě)邏輯完成重載。 1. 前言 2. 封裝 3. 繼承 4. 多態(tài) 5. 總結(jié) 1. 前言 了解過(guò)面向?qū)ο蟮耐瑢W(xué)應(yīng)該都知道,面向?qū)ο笕齻€(gè)基本特征是:封裝、繼承、多態(tài),但是對(duì)于這三...
摘要:聲明本文首發(fā)于我的個(gè)人微信公眾號(hào)編程社區(qū),查看更多文章與學(xué)習(xí)資源請(qǐng)移步我的公眾號(hào)編程社區(qū)今天我們來(lái)看看面向?qū)ο蟮娜筇卣髦环庋b下來(lái)我們從現(xiàn)實(shí)生活中的例子來(lái)聊聊封裝的特性我們?nèi)粘J褂玫碾娔X主機(jī),把內(nèi)存主板等等都封裝到機(jī)箱里面去。 聲明:本文首發(fā)于我的個(gè)人微信公眾號(hào)【Java編程社區(qū)】,查看更多文章與學(xué)習(xí)資源請(qǐng)移步我的公眾號(hào)Java編程社區(qū) 今天我們來(lái)看看面向?qū)ο蟮娜筇卣髦弧庋b ...
封裝 showImg(https://segmentfault.com/img/bVbnAOR?w=1293&h=679); showImg(https://segmentfault.com/img/bVbnAOU?w=1149&h=722); 代碼get,set /javaDemo2/src/com/imooc/Telphone.java package com.imooc; import c...
摘要:知識(shí)點(diǎn)總結(jié)封裝知識(shí)點(diǎn)總結(jié)封裝目錄下新建一個(gè)文件,用于封裝數(shù)據(jù)庫(kù)連接信息把獲取數(shù)據(jù)庫(kù)連接對(duì)象和關(guān)閉連接的操作封裝到這個(gè)類中讀取和處理資源文件的信息只需要加載一次,所以寫(xiě)成靜態(tài)代碼塊。 Java知識(shí)點(diǎn)總結(jié)(JDBC-封裝JDBC) @(Java知識(shí)點(diǎn)總結(jié))[Java, JDBC] 封裝JDBC src目錄下新建一個(gè)db.properties文件,用于封裝數(shù)據(jù)庫(kù)連接信息 showImg(ht...
摘要:封裝的實(shí)現(xiàn)封裝將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),只能通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)即隱藏對(duì)象信息的同時(shí)要留出訪問(wèn)的接口封裝的特點(diǎn)只能通過(guò)規(guī)定的方法訪問(wèn)數(shù)據(jù)隱藏類的實(shí)例細(xì)節(jié),方便修改和實(shí)現(xiàn)封裝代碼的實(shí)現(xiàn)修改屬 Lecture1 封裝的實(shí)現(xiàn) 封裝:將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),只能通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn)(即隱...
閱讀 3892·2021-09-23 11:51
閱讀 3073·2021-09-22 15:59
閱讀 873·2021-09-09 11:37
閱讀 2074·2021-09-08 09:45
閱讀 1269·2019-08-30 15:54
閱讀 2068·2019-08-30 15:53
閱讀 495·2019-08-29 12:12
閱讀 3292·2019-08-29 11:15