『壹』 java中什麼叫封裝啊
關於這個問題,我想舉一個例子:
lz如果你接觸過老的面向過程的編程,
以前封裝性很差的程序是這樣的
比如用C寫一套處理鏈表的程序,他的數據和函數是分開的
數據保存在一個內存區域里,所有相關的函數,比如增加節點啊,減少節點什麼的都是直接操作這個內存區域的指針
比如這樣
LIST *p=.....;//開辟空間
AddNode(p,...)//這樣來操作
帶來了很多額外的不安全因素,因為誰都可以操作這個指針
如果你寫的是一個第三方庫,那麼別人使用的時候完全不在你的控制之下
現在的面向對象程序則不然,
將數據和與之對應的操作(也就是方法)綁定在一個塊中
比如在Java中
LinkedList list=new LinkedList();
list.add(...);
這樣所有的內部結構對於外部用戶都是透明的,不用管內部實現和結構,如何儲存數據,都不用管內部實現(一些數據程序成員的訪問許可權是private protected就是為了數據安全性)
而原先的方式,數據是非封裝的,因為外部程序可以隨便更改數據,不利於程序的安全運行
以上提到的就屬於面向對象封裝性的意義,不過實際的好處還不只這些
lz有問題,歡迎給我發消息,我們可以具體討論一下
『貳』 java 封裝是什麼
什麼是封裝?
在定義類的時候,如果可以直接修改類中的欄位那麼就可能會出現以下的情況,age可以設置成1000,score可以設置為10000
所以就引出了封裝的概念,那麼什麼是封裝呢或者說封裝可以實現那些目的
封裝可以隱藏實現的細節
讓使用者只能通過實現寫好的訪問方法來訪問這些欄位,這樣一來我們只需要在這些方法中增加邏輯控制,限制對數據的不合理訪問、
方便數據檢查,有利於於保護對象信息的完整性
便於修改,提高代碼的可維護性
為了實現良好的封裝,需要從兩個方面考慮
把欄位(成員變數)和實現細節隱藏起來,不允許外部直接訪問
把方法暴露出來,讓方法控制這些成員變數進行安全的訪問和操作
因此,封裝就有兩個含義:把該隱藏的隱藏起來,把該暴露的暴露出來。
『叄』 JAVA為什麼要使用封裝,封裝的作用有哪些
java類的封裝性就是不能讓外面的類隨意修改一個類的成員變數
基本類型只能按值傳遞,而每個基本類型對應的封裝類是按引用傳遞的。
從斗基性能上說java中的基本類型是在堆棧上創建的,而所有的對象類型都是在堆上創建的,(對象的引用在堆棧上創建)
比如Integer i=new Integer(10); 其中new Integer()是在堆上創建的,而他的引用Integer i是在堆棧上。封裝類的出現,寬銷猜是為了更方便的使用一些基本慎型類型不具備的方法
『肆』 java 的封裝的概念
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的介面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自胡攔治、封裝的對象,這些對象通過一個受保護的介面訪褲派胡問其他對象。封裝是一種信息隱藏技術,在java中通過關鍵字private實現封裝。什麼是封裝?封裝把對象的所有組成部分組合在一起,封裝羨茄定義程序如何引用對象的數據,封裝實際上使用方法將類的數據隱藏起來,控制用戶對類的修改和訪問數據的程度。
『伍』 Java中類的封裝是如何實現的
封裝是將對象的信息隱藏在對象內部,禁止外部程序直接訪問對象內部的屬性和方法。
java封裝類通過三個步驟實現:
(1)修改屬性的可見性,限制訪問。
(2)設置屬性的讀取方法。
(3)在讀取屬性的方法中,添加對屬性讀取的限制。
『陸』 java有一大批介面地址如何封裝
最直接的方法是介面地址放在配置文件中,調用端讀取配置文件得到介面地址
『柒』 什麼是 Java 中的封裝
Java中的封裝就是將類的屬性私有化,提供公有的方法讓外部訪問屬性。通常的做法就是將屬性的修飾符設置為private,並為每個屬性創建一對取值(getter)方法和賦值(setter)方法,用於對這些屬性的訪問。封裝的好處是實現對屬性的數據訪問限制,同時增加了程序的可維護性。
『捌』 Java中什麼叫封裝
前面有private 修飾的【屬性】或者是【方法】, 不能【直接】被外部類的實例化對象訪問,這樣就是封裝。
像屬性或者方法用private 修飾之後 不能直接訪問。
class Person{
private String name; // 屬性被封裝
//get set 方法可以
//public 修飾的方法可以
public String printName(){ //【自定義的方法】
return name;
}
}
現這種 一般如果name的屬性是public,new Person().name 這樣就可以直接訪問。
現在如果想要訪問的話 new Person().name是錯誤的,因為name被封裝,不能直接的訪問了。
要通過它裡面的其他的方法訪問,new Person().printName();【get set 方法可以訪問,其他的public修飾的方法也可以】
『玖』 Java語言中的封裝有哪些
JAVA中常用的封裝方式有以下幾種:
1 、Boolean VS boolean
public final class Boolean extends ObjectimplementsSerializable,Comparable
Boolean 類將基本類型為boolean的值包裝在一個對象中。一個Boolean類型的對象只包含一個類型為boolean的欄位。此外,此類還為boolean和String的相互轉換提供了許多方法,並提供了處理 boolean時非常有用的其他一些常量和方法。
2、 Byte VS byte
public final class Byte extends Number implements Comparable
Byte類將基本類型 byte的值包裝在一個對象中。一個Byte類型的對象只包含一個類型為 byte的欄位。此外,該類還為 byte和 String的相互轉換提供了幾種方法,並提供了處理 byte時非常有用的其他一些常量和方法。
3、 Character VS char
public final class Character extends Objectimplements Serializable, ComparableCharacter類在對象中包裝一個基本類型char的值。 Character類型的對象包含類型為char的單個欄位。此外,該類提供了幾種方法,以確定字元的類別(小寫字母,數字,等等),並將字元從大寫轉換成小寫,反之亦然。
4 、Double VS double
public final class Double extends Number implements ComparableDouble類在對象中包裝了一個基本類型double的值。每個Double類型的對象都包含一個double類型的欄位。此外,該類還提供了多個方法,可以將double轉換為String,將String轉換為double,還提供了其他一些處理double時有用的常量和方法。
5、 Float VS float
public final class Float extends Number implements Comparable
Float類在對象中包裝了一個float基本類型的值。Float類型的對象包含一個float類型的欄位。此外,此類提供了幾種方法,可在float類型和String類型之間互相轉換,並且還提供了處理float類型時非常有用的其他一些常量和方法。
『拾』 java怎麼封裝介面
我們先耐攔扒來封裝以前定義的Human類:
public class Test
{
public static void main(String[] args)
{
Human aPerson = new Human(160);
System.out.println(aPerson.getHeight());
aPerson.growHeight(170);
System.out.println(aPerson.getHeight());
aPerson.repeatBreath(100);
}
}
class Human
{
/**
* constructor
*/
public Human(int h)
{
this.height = h;
System.out.println("I'm born"衡耐);
}
/**
* accessor
*/
public int getHeight()
{
return this.height;
}
/**
* mutator
*/
public void growHeight(int h)
{
this.height = this.height + h;
}
/**
* encapsulated, for internal use
*/
private void breath()
{
System.out.println("hu...hu..."昌昌);
}
/**
* call breath()
*/
public void repeatBreath(int rep)
{
int i;
for(i = 0; i < rep; i++) {
this.breath();
}
}
private int height; // encapsulated, for internal use
}