面向对象小结

---------------------面向对象总结----------------
1、锻炼面向对象的思想。
2、由对象到类的过程:抽象的过程。
提取共有的属性(类中的全局变量)和行为(类中的方法)。
3、实例化对象的过程:对象实例化过程。
声明对象 初始化对象
类名 对象名 = new 构造方法();
4、类与对象的关系:
类是对象的抽象,集合。
对象是类的实例化结果。
5、一个类的结构:
package com.qf.包名;
import 导入类;
public class 类名{
                                   //全局变量;
private String name;     //当初始化对象时,全局变量有默认值。

                                //构造方法,作用是给对象中的属性进行初始化。类中默认有无参空构造。
public 类名(参数列表)
{
this();                     //调用重载构造方法
this.name = "adsf";
}
                            //构造方法的重载,参数列表不同。

public void/返回值类型 方法名(形参列表){
this.方法名();
//方法体;
return 返回值;
}
//普通方法的重载overload,方法名相同,形参不同。

set/get方法对私有全局变量的取值、赋值的方法。
}
6、通过对象名来调用对象中的成员。
类名 对象名 =new 类名();
对象名.成员方法(对象名1);

7、几个关键字:
this:this在构造方法中表示新创建的对象本身;在普通方法中表示调用该方法对象。this关键字可以作为参数传递。
static:静态。静态修饰的成员在类加载时执行初始化任务,而且只执行一次,而且被所有对象共享。
静态成员通过类名来调用静态成员。
被所有对象共享。
静态成员变量、静态成员方法
final:final修饰的成员表示不可改变。常用来修饰变量
super:     super()放在构造方法第一行调用父类构造,默认有调用父类无参构造;
super.父类的成员;
super不可以作为方法的参数传递。
8、基本数据类型和引用数据类型作为方法参数传递的注意点:
传递的是变量的值本身。基本数据:数据值;引用数据:地址值
9、通过继承(extends)或者实现(implements),达到对象的多态性。
10、类的继承:
目的:对父类的功能的进行扩展。
单继承,一个类只能够有一个直接父类。
class A extends B{
public A()
{
super();//调用父类构造方法,默认自动调用父类构造。
}

//override,子类重写父类的方法
权限修饰符向更高权限重写方法,其他相同。

}

A a = new A();先执行父类的实例化,再执行子类的实例化
当是子类类型时,a.成员方法(),直接调用子类对象中的成员方法。
B a = new A();
当时父类类型时, a.成员方法(),去父类中查找,调用子类中重写的方法,不能调用子类新增方法。

对象多种形态的转换,对象转型。
A a = new A();
B b = a;//子类对象转父类类型,自动转型。

B b1 = new A();
A a2 = (A)b1;//父类类型的对象转子类类型,需要强制转换。
11、访问权限修饰符:
private 默认 protected public
12、==和equals区别:
==用来比较两个变量的值是否相同。基本数据类型是数据值。引用类型比较地址值。
equals方法比较两个对象,自定义类中的equals方法默认是==比较地址值。可以通过重写equals方法来比较对象内容。
JDK中String,Date,File,八个封装类。
13、Object类中的方法。
toString();
hashCode();
14、抽象类和接口。
抽象类:
public abstract class 类名{

//与普通类的区别1,可以有抽象方法:
public abstract void method();
}
//区别2:不可以直接实例化抽象类。

子类通过extends关键字来从抽象模板类中派生,重写父类的抽象方法。

接口:
接口中只有常量和抽象方法。
public interface 接口名{
int a =10;
void method();
}

实现类通过implements关键字从接口中派生实现类。实现接口中定义的方法。

15、普通内部类在第三方类的实例化
class Outer{

class Inner{

}
}
先实例化外部类 Outer o = new Outer();
在使用外部类对象来实例化内部类 Inner i= o.new Inner();

16、静态内部类再第三方类的实例化

class Outer{

static class Inner{

}
}
直接实例化静态内部类 Outer.Inner i = new Outer.Inner();
17、匿名内部类
直接实例化抽象类或接口
接口 对象名 = new 接口(){

重写方法
}

对象名.方法名()
18、单例模式
懒汉单例模式
饿汉单例模式









posted @ 2016-07-27 18:58  咖喱不见不散啊  阅读(148)  评论(0)    收藏  举报