---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
面向对象小结
一:传统的过程式的编程语言和java面向对象编程语言用公式表达是
传统编程语言:程序=算法+数据。
面向对象语言:程序=对象+消息。
二:面向对象的三个特性:
1:封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念, 即现实世界可以被描绘成一系列完全自治、封装
的对象,这些对象通过一个受保护的接口访问其他对象。封装是 一种信息隐藏技术,
在java中通过关键字private实现封装。什么是封装?封装把对象的所有组成部分组合
在一起,封装定义程序如何引用对象的数据,封装实际
注意:封装不等于私有,私有仅仅是封装的一种表现形式。
例:
public class People
{
//属性封装
private String name;
private int age;
People(String name,int age)
{
this.name=name;
this.age=age;
}
//属性设置
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
//属性获取
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
2:继承: 在java中支持单继承和多层继承,不支持多继承。
格式:class子类名 extends 父类
class 父类
{}
class 子类 extends 父类
{}
注意:接口和接口之间是支持多继承的。
实例:(摘自课外书)
//建一个A类
class A{
/ /成员变量 其中num是实参
int num=0;
//成员方法,其中 i 是型参
public A(int i){
//输入int型文件输出下面
System.out.println("aaaaaaaaaaaaaaaaaaa");
System.out.println("i= "+i);
//把输入的i赋值给成员变量num
num=i;
}
}
//B继承A
class B extends A{
int num=0;
//成员方法B.
public B(){
//继承类A的方法.因为B继承了A必然继承了A的特性.所以输入int值10令
方法实现.
super(10); //super在后面博客中会提到,
System.out.println("bbbbbbbbbbbbbbbbbbbb");
/ /这里的num是类B的.
System.out.println("num= "+num);
//如果想显示类A的num则需要用下列的super.num.这里注意num在类A
中需是成员变量才可以.
System.out.println("super.num= "+super.num);
}
}
//建立测试类C
public class C{
//main
public static void main(String aa[]){
//new 一个对象B()
new B();
}
3:多态:
对于多态,可以总结它为:
一、使用父类类型的引用指向子类的对象;
二、该引用只能调用父类中定义的方法和变量;
三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,
将会调用子类中的这个方法;(动态连接、动态调用)
四、变量不能被重写(覆盖),”重写“的概念只针对方法,如果在子类中”
重写“了父类中的变量,那么在编译时会报错。
多态向上转型:父类通过子类去实例化,实际上就是对象的向上转型。
向下转型:也就是说父类的对象可以转换为子类对象,但必须强制转换。
总之:向上转型可以自动完成。
向下转型必须进行强制类型转换。
--------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! -----------------