Java基础总结–面向对象(二)

接到上篇Java基础总结(一)我们继续...

类与对象什么关系

类(Class)是对一组具有相同属性、操作和关系的同类事物的描述,是抽象的、概念上的定义。

对象(Object)是实际存在的该类事物的每个个体,因而也称实例(instance)。

对象实例化与使用

类定义好了,如何得到一个对象?

实例化对象语法:

类名  对象名 = null;       //声明对象

对象名 = new  类名( );  //实例化对象

 

类名  对象名 =  new  类名( ); //声明的同时实例化对象

调用成员变量及其成员方法语法

对象名.成员变量名 =  值;  //给成员变量赋值

对象名.成员方法名(参数1,参数n); //调用成员方法

this关键字

表示类中的属性,可以使用this调用本类中其他的构造方法。

this表示当前对象。

new关键字

new 是用来实例化对象的关键字,在实例化对象的时候在内存中给该对象分配了内存空间用来存放相应的成员变量,new 调用一次就分配一个新的空间。

例:

//创建一个新对象,并分配内存存放变量值

Car car1 = new Car("红色",4,120000.00f);

面向对象有那些特点?(请给我解释下什么叫面向对象?)

通俗点讲万物皆对象。

面向对象编程有三大特点:封装、继承、多态;

封装:将其信息属性和方法具体实现隐藏起来,只提供调用方法的接口,既封装。

继承:将一个已有类中的属性和方法保留,可再加上自己特有的属性和方法形成一个新类,既继承。

多态:指同名但有不同的具体实现的多个方法同时存在一个程序中。有两种实现方法:重载和重写。

封装

为什么需要封装?

隐藏类的实现细节;

让使用者只能通过指定的方法访问数据,可以方便加入控制逻辑,限制不合理的操作;

便于修改,增强代码可维护性;

 

将成员变量声明为私有的(private),再提供一个或多个公有(public)setXX() 和getXX()方法实现对该成员变量的访问和修改。

类中的私有成员变量/成员方法只能在该类内部调用,不能通过该类的对象调用。

继承

一个类从另一个类派生出来的过程叫继承。

被继承的类称为父类

执行继承的类称为子类

class 子类名 extends 父类名 {

//类体

}

继承 -- supper

有没有什么方法能让子类借用父类的构造方法的?

使用supper关键字

supper关键字代表父类

supper.父类成员变量

supper.父类成员方法(参数列表)

supper (参数列表)

继承的小结

1、一个类如果没有extends任何类,则默认继承Object类。

2、JAVA只支持单继承,不允许多重继承。

3、可以有多层继承;类B继承类A;类C继承类B。

4、子类继承父类的成员变量和成员方法,但不继承父类的构造函数,但在子类的构造方法中可以使用super(参数列表)调用父类的构造方法。

5、如果子类的构造方法中没有显示的调用父类构造方法,也没有使用this关键字调用自己的其他构造方法,那么在产生子类实例对象时JVM自动调用父类无参数的构造方法。

重写

子类重写中的注意点

如果在子类中想调用父类中的那个被重写的方法,我们可以用super.方法名(参数列表)

重写方法时,不能使用比父类中被重写的方法更底的访问权限 。

public ->protected -> default ->private

(高到低)

注意:

1、继承只能为非private的变量与方法。

2、如果父类为private的,子类中同名、同参、同返回值类型的方法只相当于定义了一个新方法,与父类没有任何关系。

重载

方法重载

在同一个类中方法名相同

方法的参数类型或个数或顺序不同

方法的重写与重载有什么却别?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型。

未完待续...

下篇传送阵:Java基础总结(三)

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

    A+
发布日期:2016年01月30日  所属分类:Java
标签:

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: