标签:
(1).概念(实现代码的重用):封装是指类中的成员变量都是private,并提供public方法访问这些成员变量的技术。如果一个成员变量被声明为private,那么它就不能被其它类访问,从而隐藏了类中的成员变量。因此,封装也被称为数据隐藏。
(2).访问修饰符: 本类 同包中不同类 不同包 子类
public Y Y Y Y
protected Y Y Y
default(不写) Y Y
private Y
(确保数据安全性,隐藏实现细节) private 这些访问修饰符访问权限由大到小
(3).优点:类的成员变量可以变成只读或只写的。
类可以对存储在其成员变量中的内容有一个整体的控制。
类的用户不需要知道类是如何存储数据的。
补充:
A:理解静态成员
指类和类的多个对象共同拥有的一个属性或者是方法,静态成员可以通过类名.静态成员名或者是对象名.静态成员名调用,需要注意的是,如果你定义了一个静态成员public static int A = 10,类调用了这个静态成员并且将10改成了20,那么其它的对象再调用这个A此时他们得到的值就是20,因为他们和类共同拥有一个静态成员。
B:访问静态成员变量和方法
C:静态方法不能访问实例成员
D:静态初始化块
E:内部类
a:静态内部类,作为类的静态成员,存在于某个类的内部
b:成员内部类,作为类的成员,存在于某个类的内部
c:局部内部类,存在于某个方法内部的类
d:匿名内部类,存在于某个类的内部,但是无类名的类
eg:
package com.lovo.chap08.demo; public class Outter { int i = 1; static int j = 2; /** * 成员内部类 * @author Administrator * */ class Inner1{ int k = 3; public void show(){ System.out.println("k=" + k); System.out.println("i=" + i); } } /** * 静态内部类 * @author Administrator * */ static class Inner2{ int k = 3; public void show(){ System.out.println("k = " + k); System.out.println("j = " + j); } } public void show(){ final int k = 3; /** * 局部内部类 * @author Administrator * */ class Inner3{ int m = 4; public void show(){ System.out.println("m=" + m); System.out.println("k=" + k); } } new Inner3().show(); } public void print(Inter inter){ inter.printfInterface(); } } interface Inter{ void printfInterface(); }
多态
(1).分类:静态多态:指程序在编译时,系统就能决定调用哪个方法,所以也称编译时多态,实现方法为方法重载
动态多态:指在运行中系统才能动态确定方法所指的对象,所以也称为运行时多态,实现方式是重写父类中的同名成员方法
(2).多态技术基础:向上转型技术、向下转型技术、instanceof关键字【前面的类型是否是后面类型的实例】、动态绑定技术
(3).多态的应用
a.多态参数:就是当方法的某个形式参数是一个引用的时候,与该引用兼容的任何对象都可以传递给方法,从而允许方法接受不同数据类型的形式参数。
eg:public void payEmployee(Employee e){}
b.异构集合:不同对象的集合
eg:Salary[] salary=new Salary[n];
(4).实现多态的步骤:编写父类、子类;子类重写父类方法;用父类的数据类型去引用子类对象。
抽象
(1).抽象类:使用关键字abstract声明,不能被实例化,需要子类继承,因为实例化对象无意义
(2).抽象方法:子类被约束,父类无意义
将一个方法声明为抽象方法有两个结果:类必须声明为抽象类
任何子类必须重写抽象方法,除非子类本身也是抽象的
将一个抽象方法放在父类中,可以强制任何子类实现一个特别的行为。
标签:
原文地址:http://www.cnblogs.com/moshengren-java/p/4434376.html