java中的封装是对方法和属性的私有化的操作。就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。那么问题来了,为啥要封装呢?其实我也不太清楚,我觉得就是把自己一些私有的东西保护起来,比如你用手机,你不可能把手机内部打开吧,把这个电阻那个芯片拿出来随意换换。你只需要使用手机的某一个功能就可以了。同样的JAVA中的封装也有这方面的意思,某些类提供给你,你只需要会使用即可,而不需要关心内部是如何实现的。举个例子:
public class Man
{
//对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
private String name;
private int age;
private Woman wife;
public void show () {
}
如上的例子是把对象的属性进行封装。防止随意的访问。那么问题来了,外部该如何访问修改属性呢。当然是该类提供给其的方法。对于age。可以命名为public setAge(){this.age = age};该方法提供了 外部修改age属性的方法。同样的age修改了后需要进行访问。那么要给其一个方法public int getAge(){return age}。当创建Test类的时候,对Man进行实例化。便可以通过给定的方法对 Man的属性进行修改。如下图所示的例子。
这个例子就是对各个属性进行封装,如setPersonName方法是对PersonName,进行赋值。同时在赋值的同时又要去取它的值,就定义了一个getPersonName();方法。这样就隐藏了对象的属性。
同样的封装另一个重要的关键字package 是对文件进行打包的程序。package it.dayuan.Person;
package it.dayuan.Person;
public class Person {
private String name;
private int age;
private Bike bike;
public Person () {
}
public void setBike(Bike bike) {
this.bike = bike;
}
public Bike getBike() {
return bike;
}
public void setPersonName (String name) {
this.name = name;
}
当运行javac命令时要对其进行打包处理。如在相应的目录下新建一个文件夹、PSY。要将生成的class文件放入到该文件夹中就要是使用,javac -d PSY Person.java 此时编译的文件就放在了PSY文件下,同样的在 PSY 文件下JVM又新建立了package 后面的文件夹。文件夹等级“.”区分。如 package com,baidu.User;该命令的作用就是新建一个文件com然后com文件下有新建一个baidu文件夹、最后在新建一个User文件。这就是打包的好处。封装的必要性在工作中显而易见的。这既保护了数据的安全性。又不失调理。当然前面所说的都是利用文本编辑JAVA。你要是使用高级工具编辑。那这些你可以不考虑。在使用文本写程序的时候,如果两个类不在一个包内,那么你要使用类的属性或者方法的时候你就需要使用import将所使用的类的包名的包导入到新的类中。(import com.baidu.User.*;)。封装还有很多的细节问题,这里既有不一一列举了。写这个博客是为了保留自己在学习时 的记忆。当然希望给阅读者有一定的参考价值。