摘要:封裝什么是封裝封裝可以認為是一個保護屏障,防止代碼和數據被外部類定義的代碼隨機訪問。封裝最主要的功能在于我們可以修改自己的實現代碼,而不用修改那些調用我們代碼的程序片段。
Java封裝 1.什么是封裝
封裝可以認為是一個保護屏障,防止代碼和數據被外部類定義的代碼隨機訪問。封裝最主要的功能在于我們可以修改自己的實現代碼,而不用修改那些調用我們代碼的程序片段。封裝加強了代碼的安全性。
2.封裝的優點1.良好的封裝能夠減少耦合性
2.類內部的結構可以自由修改
3.隱藏信息,增強安全性
修改屬性的可見性來限制對屬性的訪問private
public class Person { private String name; private int age; }
2.對每個值屬性提供對外的公共方法訪問,使用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; } }代碼實例
public class Dog { // 靜態變量 private String name; private int health;// 健康值 private int love; private String strain;// 寵物的品種 public void show() { System.out.println("我叫" + name + ",現在健康值是:" + health + ",親密度是:" + love + ",品種是:" + strain); } public Dog() { } public Dog(int health, int love, String strain) { this.health = health; this.love = love; this.strain = strain; } // 不能夠輕易的可以通過對象名.屬性名來修改數據 只提供一個方法給他 具體參數合法性判斷由我們自己來決定 public void setHealth(int health) { if (health < 0 || health > 100) { System.out.println("健康值是0-100,默認值是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(); // 封裝屬性 外部觀察不到 只能看到相對應的方法 并且可以在方法里面實現控制 dog.setHealth(1001); dog.setName("哈哈"); System.out.println(dog.getName()); System.out.println(dog.getHealth()); // 沒有封裝屬性 可以隨意的查看對象的屬性 Dog2 dog2 = new Dog2(); dog2.health = -100; dog2.show(); } }
public class Demo01 { public static void main(String[] args) { // TODO Auto-generated method stub // 人有姓名 年齡 身高 體重 使用封裝思想來創建類 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; } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72842.html
摘要:本文繼續講封裝。上一篇樂字節垃圾回收機制和語句這次講述繼承與權限修飾。通過繼承,子類自動擁有了基類的所有成員成員變量和成員方法。一覽無遺子承父業兒子自己使用家庭和睦占為已有。 本文繼續講Java封裝。上一篇:樂字節Java|GC垃圾回收機制、package和import語句 這次講述JavaBean、繼承與權限修飾。showImg(https://segmentfault.com/im...
摘要:對象是公布其接口。節選自百度百科我對于封裝的理解,可能還有一個步驟就是抽離,首先你要清楚在一個對代碼中你應該抽離那些屬性方法,有了這些為基礎才能更好的做好封裝。節選自百度百科因為是沒有重載的概念的所以要自己編寫邏輯完成重載。 1. 前言 2. 封裝 3. 繼承 4. 多態 5. 總結 1. 前言 了解過面向對象的同學應該都知道,面向對象三個基本特征是:封裝、繼承、多態,但是對于這三...
摘要:聲明本文首發于我的個人微信公眾號編程社區,查看更多文章與學習資源請移步我的公眾號編程社區今天我們來看看面向對象的三大特征之一封裝下來我們從現實生活中的例子來聊聊封裝的特性我們日常使用的電腦主機,把內存主板等等都封裝到機箱里面去。 聲明:本文首發于我的個人微信公眾號【Java編程社區】,查看更多文章與學習資源請移步我的公眾號Java編程社區 今天我們來看看面向對象的三大特征之一——封裝 ...
封裝 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...
摘要:知識點總結封裝知識點總結封裝目錄下新建一個文件,用于封裝數據庫連接信息把獲取數據庫連接對象和關閉連接的操作封裝到這個類中讀取和處理資源文件的信息只需要加載一次,所以寫成靜態代碼塊。 Java知識點總結(JDBC-封裝JDBC) @(Java知識點總結)[Java, JDBC] 封裝JDBC src目錄下新建一個db.properties文件,用于封裝數據庫連接信息 showImg(ht...
摘要:封裝的實現封裝將類的某些信息隱藏在類內部,不允許外部程序直接訪問,只能通過該類提供的方法來實現對隱藏信息的操作和訪問即隱藏對象信息的同時要留出訪問的接口封裝的特點只能通過規定的方法訪問數據隱藏類的實例細節,方便修改和實現封裝代碼的實現修改屬 Lecture1 封裝的實現 封裝:將類的某些信息隱藏在類內部,不允許外部程序直接訪問,只能通過該類提供的方法來實現對隱藏信息的操作和訪問(即隱...
閱讀 3864·2021-09-23 11:51
閱讀 3057·2021-09-22 15:59
閱讀 856·2021-09-09 11:37
閱讀 2064·2021-09-08 09:45
閱讀 1260·2019-08-30 15:54
閱讀 2056·2019-08-30 15:53
閱讀 485·2019-08-29 12:12
閱讀 3283·2019-08-29 11:15