Java 封装
来源:互联网 发布:碧欧泉面霜 知乎 编辑:程序博客网 时间:2024/05/21 10:05
封装
1、封装就是(Encapsulation)就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开(隐藏对象的的属性和方法实现的细节,只公开对外接口)
2,具体做法就是把属性私有化,提供公有的方法访问这些属性,在这写公有方法中实现对属性的控制。
示例: public class Student2 { private String name; // 姓名 private int rp; // 人品(取值在1-10之间,越高越好) public int getRp() { return rp; } public void setRp(int rp) { if (rp < 1 || rp > 10) { System.out.println("错误!人品值应该在1-10之间!"); this.rp = 1;//人品不符合要求,赋予默认值1 } else { this.rp = rp; } ………… }
通过公有的getter(取值)、setter(赋值)方法访问这两个属性.
3、封装提供了4种访问控制级别
访问修饰符有以下4个:
Public 公共的,最高的访问级别,类的public成员所有类的成员都能访问。
protected 受保护的,类的protected成员只能被该类的成员及其子类成员访问。还可以被同一个包中其他类的成员访问。 private 私有的,不对外公开,类的private成员只能被该类的成员访问,访问级别最低。 默认 类的成员什么修饰符都没有,又叫包修饰符,只有类本身成员和当前包下的成员可以访问
4、封装的具体实现步骤
1、修改属性的可见性来限制对属性的访问。2、为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。3、在赋值和取值方法中,加入对属性的存取限制。//访问器有标准写法//标准的设置访问器,set + 要访问的私有属性,将首字母大写拼起来的方法。//然后只能有一个参数,一般这个参数的类型要和要访问的属性类型相同,不能有返回值。//标准的获取访问器,get+要访问的私有属性的名字,首字母大写。//返回值类型需要和访问的属性类型一致,但是不能有参数。//this //1、 this 关键字是类内部当中对自己的一个引用,可以方便类中方法访问自己的属性; //2、可以解决局部变量好属性同名的冲突; //3、this调用本类中的其他方法,static修饰的方法内不能使用this关键字。
方法的的重载
1、方法重载的特点
(1)在同一个类中发生
(2)方法名相同
(3)参数列表不同(参数列表不同可以是:个数不同,顺序不同,类型不同。)
(4)重载:再同一个类下,方法名相同但是签名不同的称为重载,和返回值类型无关。
示例:
public int substract(int a,int b){
System.out.println(“———-int———–”);
return a-b;
}
public double substract(double a,double b){ System.out.println("----------double--------"); return a-b; }
构造方法
1、
/*
* 默认的构造方法,咱们也可以去写
* 一般情况下构造方法都是public形式的
* 一旦被写,那么JDK就不再 提供
*/
2、
//构造方法(constructor),构造方法默认就有,就有的那个方法叫默认的构造方法。
//默认构造方法的特点:
/** 1、构造方法的名称跟类名完全相同,大小写一致* 2、没有参数,没有返回值。* 3、如果一个类没有写构造方法,那么默认的构造方法会被JDK所提供*///构造方法的使用原则//1、默认构造方法一般不自己写,除非想要在默认构造方法中进行一些自己需要的操作//2、一旦写了构造方法,不管是默认的或者非默认的,JDK均不再提供默认方法构造方法可以重载。 public Student(String name,int age){ System.out.println("student constructor111111"); this.name = name; this.age = age; } public Student(String name,int age,String address){ /*this.name = name; this.age = age;*/ this(name,age);//this() 代表调用其他构造方法 System.out.println("student constructor222222"); this.address = address; }构造方法只能由new关键字和this()调用,this()只能在构造方法中使用,用来调用其它构造方法,且只能作为构造方法代码体的第一条语句。 public Student(String name,int age,String address){ /*this.name = name; this.age = age;*/ this(name,age);//this() 代表调用其他构造方法 System.out.println("student constructor222222"); this.address = address; }
阅读全文
0 0
- java封装
- JAVA 封装
- 【封装】 JAVA
- Java封装
- java--封装
- Java封装
- Java封装
- java封装
- java封装
- java封装
- java封装
- java封装
- java封装
- java封装
- Java 封装
- Java 封装
- java 封装
- Java封装
- Java 多线程
- android dalvic 虚拟机内存参数
- ThreadLocal与WeakReference
- 下载YouTube视频最简单的方法
- 面试题小结
- Java 封装
- CSS选择器
- 用Spyder自带的ipdb调试
- e3mall Day04
- TCP/IP详解--TCP/UDP优化设置总结& MTU的相关介绍
- jquery 遍历 发请求 页面展示
- 一个简单java类
- 创建类!
- iconfont 转换为图标字体。