java面向对象学习总结

用了两个星期的时间学习了java基础的面向对象,下面是我写的这方面的总结,希望对java初学者有些帮助。

面向对象总结

一、    面向过程和面向对象的异同点:

区别:面向过程用线性的思维去解决,面向对象站在高度上,很多事情让其他人去做。

联系:两者相辅相成,并不是对立的。

二、    类和对象

万物皆对象,类是对对象的抽象化。

特殊到一般,具体到抽象

类可以看成一类对象的模版,对象可以看成该类的的一个具体实例。

类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的静态和动态属性。

JDK提供了很多类供编程人员使用,编程人员也可以自己定义自己的类。

累的组成:属性(field) 方法 构造方法其他 :代码块 静态代码块 内部类

创建对象 类名 对象名 = new类名();Person p = new person();

构造器 作用:对对象进行初始化,构造方法不同,能够实现不同的初始化。

当创建一个对象时,如果类没有提供无参构造方法,系统默认提供一个无参构造方法。当这个类提供任何一个构造方法,系统不会提供无参构造方法。

全局变量和局部变量:全局变量属于整个类,所有方法可以使用和更改他。

局部变量属于方法本身,只有在这个局部变量的方法里才能使用。当全局变量和局部变量的名字相同时,在方法调用的时候,首先使用方法内部的局部变量;

New 关键字

调用类的方法需使用类的对象,方法名(参数列表)

This 关键字

值传递和引用传递

值传递:基本数据类型,本身不会发生改变

引用传递:引用数据类型,(类 对象 数组 接口 )

This的作用:

This 表示的是当前对象本身。

在普通方法中使用this:

区分类成员属性和方法的形参;调用当前对象的其他方法,任意位置

构造方法中使用this:

使用this来调用其他构造方法,位置必然是第一条语句,this不能用于static方法;

Static关键字:

在类中,用static生命的成员变量为静态变量,或者叫做类属性,类变量。

在类被载入时被显式初始化。对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享。可以使用对象.类属性调用。

使用static声明的方法为静态方法

不需要对象可以调用(类名.方法名)

再调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static成员了;静态方法不能以任何方式引用this和super关键字。

面向对象的三大特征(oop):封装、继承、多态、

子类可以继承父类的属性和方法,子类还可以提供自己的属性和方法

封装的作用:隐藏对象内部的复杂行,只对外公开简单的接口,便于外界调用,从而提高系统的课扩展性,课维护性;程序设计的要求:高内聚,低耦合。

封装属性,类和对象。Public 所有权限,protected 子父类权限,default包权限,private类权限。

Private 私有属性一般会提供公共的get/set方法,以便于对我私有属性进行读写。Get是为了获取属性,要返回值,(boolean)是is

Set是为了改变属性,提供参数;

继承:exdends 关键字 子类继承父类

子类拥有父类非私有的属性和方法,java只有单继承,单继承用于接口实现。

子类不能继承父类的构造方法。作用:代码重用。

子类在使用自己的构造方法,会先去调用父类的构造放发。以此类推。

多态:重载(overload)和重写(override)

重写:子父类之间,子类的方法名、返回值和参数列表同父类一样,但是方法体不同。

重载:在同一个类中,方法名相同,方法参数类型不同(类型、顺序、个数不同)。

多态作用:代码多样化。

Object类是所有java的基类(父类)

如果一个类没有继承任何类,那么这个累就继承了object类。Super代表父类本身,this代表当前对象本身。

==和equls的区别:

==可以用来基本数据类型的比较。

Int I = 1;j=1;i==j;//true

引用数据类型== 比较的是内存地址是否相等

Person p = new person ;

Person p1= new person ;

P==pq;//false;

Equals 用来比较两个对象是否相等;

String s= “abc”;

String s1= “abc”;

s.equals(s1);//true;;//true;

子类通过super调用父类的构造方法,通过构造方法为父类属性进行赋值。

多态存在的必要条件:

要有继承,要有方法的重写。父类应用子类;

A instanceof B 用来判断A对象和B对象是否是同一种类型。是返回true否则返回false

向上转型:子类转父类(父类出面子类做事)

向下转型:父类再转成原有的子类(强制 、注意类型转换异常)

Final 可以用来修饰变量、方法、类;

Final 最终的,最后的,不变的;

修饰属性:修饰一个变量,这个变量就成了常量;

修饰方法:这个方法不能被子类重写;

修饰类:这个类不能被继承;

抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展。通过抽象类可以避免子类设计的随意性;

Abstract:修饰类是抽象类,修饰方法是抽象方法;抽象方法是为了子类重写,没有方法体。抽象类:提供了一种模板,提供抽象方法,抽象方法必须重写。保证子类的方法一直性,更好的实现多态。

抽象类的定义:一个被abstract修饰的类;

Abstract修饰的方法编程抽象方法。抽象方法的意义是为了实现子类重写,提供抽象方法,抽象方法必须重写。保证子类的一致性,更好的实现多态。抽象类不一定会有抽象方法。

Staticfinal修饰一个变量,这个变量变成一个常量。

工厂类

Pubicstatic 父类 getInsteance(int i){

If(i==1){returnnew 子类}else ifi==2{return new  子类} return null

接口 interface

定义:一个完全抽象的类,抽象类的抽象类。接口中只存在抽象方法和全局静态常量,接口可以继承接口,普通类可一实现接口,抽象类可以实现接口java是单继承,但是接口可以继承多个接口,多实现,普通类可以继承普通类,普通类可以继承抽象类,普通类可以实现接口,抽象类可以继承普通类,抽象类可以继承抽象类,抽象类可以实现接口,接口可以多继承接口,接口存在的意义是为了让子类实现。

内部类:

将一个类定义置入另一个类定义中,接口在new的时候产生一个内部类,体现了封装性,

内部类分为,成员内部类,静态内部类,方法内部类,匿名内部类。

单例 单例一个类有且只有一个对象

私有化构造方法,提供一个返回类的构造方法。

Publicclass Singleton{

 Private static Singleton s = null;

PrivateSingleton(){}

Publicstatic singleton getInstance(){

  If(s==null){

   S= new Singleton();

}returnnull

 

}

Publicstatic void main (String [] args){

 

   Singleton s = new singleton.getInstance();

}

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值