黑马程序员_面向对象的程序设计

------- android培训、 java培训、期待与您交流! ----------


面向对象

面向对象是一种较新的组织程序的方式。
比起传统的面向过程的程序设计,面向对象的程序设计方式更符合自然的逻辑习惯。
面向对象的程序设计把问题事物都看作对象,把问题拆分成对象之间的各种逻辑联系。
这种组织方式更适合解决复杂的问题。底层的效率不一定比面向过程高。

类和对象

类,表示一类事物的抽象。类似现实世界中的图纸。
对象,表示类的实例。类似现实世界中按照图纸生产的产品。

JAVA中的类、抽象类、接口和对象。
JAVA中的类通过 关键字class 来定义。如:
	class A{
	
	}


这里定义了类A。


JAVA中的抽象类通过 关键字abstract 来定义。如:
	abstract class B{
	
	}


这样就定义了一个抽象类B

JAVA中的接口通过 关键字interface 来定义。如:
	interface C{
	
	}


这样就定义了一个接口C

JAVA中的对象通常通过 关键字new 来实例化
A a = new A();


这里实例化了类A的对象a




继承

类和类之间可以存在继承关系。通过关键字 extends 实现。
如:
	class A extends B{


	}


这里类A就继承了类B,所以类A是类B的子类,类B是类A的父类。
子类可以继承父类中的所有非私有成员(成员变量、方法、常量)
也就是说,如果类B中有非私有成员变量int x,非私有成员方法show(),则类A的对象也可以调用x和show(),而不需要特地去创建类B的对象。

this和super关键字
this关键字指类本身,可以在许多情况下看作本类对象。
this() //表示调用本类的构造方法。
this.x //表示调用本类的全局变量x(如果有的话)
super关键字指类的父类。
super();//表示调用父类的构造方法。
super.x //表示调用父类的全局变量x(如果有的话)


封装

在JAVA中指通过权限修饰符的使用,实现对象的内外部隔离。
实现封装后,对象的内部实现细节在外部是无法知道的,这样保证了程序运行的安全性。
同时在对象外部而言,也不需要去关心对象内部是如何实现的。

JAVA中的权限修饰符分为4种:public、protected、default、private
权限依次递减。
public称为包访问权限。不同的包之间,可以互相访问权限是public的对象。同时子类可以继承父类中权限为public的成员
protected可以提供包内各个类对象的访问,同时包外的类的子类也可以继承访问父类中权限protected修饰的成员。
default是默认的权限,不需要特别写出,该权限提供包内的对象之间互相访问。
private是私有权限,仅提供本类内的成员访问和调用。

final修饰符
final修饰符又称为最终修饰符,被该修饰符修饰的对象,不可再被修改。

class Father{
	public int a;
	protected int b;
	int c;
	private int d;
	final int e=3;
	public int a(){
		return a;
		
	}
	protected int b(){
		return a;
		
	}
	int c(){
		return a;
		
	}
	private int d(){
		return a;
		
	}
	final int e(){
		return e;
		
	}


	
}
class Son extends Father{
	
}



类Son可以从类Father处继承的成员变量有a/b/c/e,可以继承的方法是a()/b()/c()/e()。
其中变量e和方法e()都只能使用而不能覆盖。




多态

多态指的是父类对象在运行时动态的使用子类的方法。
实现形式是:
	Father f = new Son();
	f.a();




这里使用上面的例子,运行时,程序会调用子类的a()方法。

需要注意的是,只有非静态的方法可以实现多态,如果是静态方法,则不可以。
静态方法和静态成员、静态变量一样,不能实现多态。


你可能感兴趣的:(黑马程序员_面向对象的程序设计)