面向对象的基本特征:封装
Posted daidai66
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的基本特征:封装相关的知识,希望对你有一定的参考价值。
封装的好处
1、调用者:方便使用/简化使用
2、设计者:安全,可控
如何实现封装,控制不同等级的封装
使用权限修饰符
修饰符 | 本类 | 本包 | 其他包的子类 | 其他包的非子类 |
private | √ | × | × | × |
缺省 | √ | √ | × | × |
protected | √ | √ | √ | × |
public | √ | √ | √ | √ |
权限修饰符可以修饰什么?
所有的权限修饰符都可以修饰:成员变量、成员方法、构造器、成员内部类
可以修饰外部类的权限修饰符:缺省和public
属性私有化
1、在属性前面加private
2、根据需求提供get/set方法
1 public class Student{ 2 private String name; 3 private int age; 4 private boolean marry; 5 6 public void setName(String name){ 7 this.name = name; 8 } 9 public String getName(){ 10 return name; 11 } 12 public void setAge(int age){ 13 this.age = age; 14 } 15 public int getAge(){ 16 return age; 17 } 18 public void setMarry(boolean marry){ 19 this.marry = marry; 20 } 21 public boolean isMarry(){//boolean类型的属性,它的标准的get方法,用is代替get 22 return marry; 23 } 24 }
包
1、包的作用
(1)控制可见性范围
如果在这个包中的某个类或成员,它的权限修饰符缺省了,就表示这个类或成员仅限于本包使用
(2)避免类的重名
(3)按照不同的主题来分门别类管理类
因为包在编译后是对应文件夹
常见的包:
java.long:核心语言类库,例如:String,System,Math,Thread…
java.io:输入输出相关
java.util:各种工具
java.net:和网络编程相关
java.sql:和数据库相关
…
2、如何声明包
1 package 包名;
位置必须在.java文件的首行,一个.java文件只能有一句
包名的命名规范:(1)所有单词都小写,单词之间使用.分割(2)习惯上用公司域名倒置+模块名
3、如何编译带包的源文件
1 javac -d . 源文件名.java
- -d:创建包目录结构
- .:表示在当前目录
4、如何运行代表的类
1 java 包.类名
5、如何使用其他包的类
(1)实用类的全名称
1 java.util.Scanner input = new java.util.Scanner(System.in);
(2)使用import语句导包,在代码中使用简名称
1 import 包名.类名; 2 import 包名.*; //*只能省略最后一级的类名 3 4 //静态导入 5 import static 包名.类名.静态成员; 6 import static 包名.类名.*;
当使用两个不同包,但是类名相同的两个类时,只能一个使用导包,一个使用全名称,不能两个都使用导包。
被使用的其他包的类或成员,它的权限修饰符必须是>缺省
以上是关于面向对象的基本特征:封装的主要内容,如果未能解决你的问题,请参考以下文章