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 最终的,最后的,不变的;

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

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

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

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

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭