面向对象编程

 

这次笔记记录的是java面向对象编程的思想简介。
===========================================================
===========================================================

这里面向对象编程思想的介绍就免了把。很多书上都有。而且这个东西很只可
===========================================================
构造方法:
构造方法的名字和类名相同,并且没有返回值。
构造方法主要用于为类的对象定义初始化状态。
我们不能直接调用构造方法,必须通过new关键字来自动调用,从而创建类的实例。
Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个缺省的构造方法,也就是不带参数的构造方法。
当我们的类中只要有构造函数,不管这个构造函数是否带参数,Java编译器都不会为我们提供构造方法了。

当我们用构造方法初始化对象时,系统用默认值初始化对象的成员变量。
各种数据类型的默认值为:
数值型   0
boolean   false
char   ‘\0’
对象   null
===========================================================
javap.exe是sun公司提供的一个java反编译器。使用格式为“javap 类名”后面不需要.class。
===========================================================
new关键字:
为对象分配内存空间。
引起对象构造方法的调用。
为对象返回一个引用。
===========================================================
方法的重载:
重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能构成方法的重载。
===========================================================
特殊变量this:
this变量代表对象本身。
当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。

使用this简化构造函数的调用:在一个构造函数中调用其他构造函数,可以直接用“this(参数)”来调用。但是必须是构造函数的第一句。

关于实例方法和实例数据成员的进一步说明:
一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝。尽管在内存中可能有多个对象,而且数据成员在类的每个对象所在内存中都存在着一份拷贝。
this变量允许相同的实例方法为不同的对象工作。
每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。
===========================================================
关键字static:
静态方法和静态变量是属于某一个类,而不属于类的对象。
静态方法和静态变量的引用直接通过类名引用。

在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。
可以用类的对象obj去调用静态的方法method(),如:obj.method()。

非静态方法我们也叫他实例方法。必须产生该类的实例之后才能调用实例方法。
===========================================================
定义常量:
使用关键字final定义常量,例如:
    final double PI=3.1415926;
作为一种约定,在定义常量时,通常采用大写形式。

final常量可以在声明的同时赋初值,也可以在构造函数中赋初值。

为了节省内存,我们通常将常量声明为静态的(static)。但是当声明为静态,常量必须在声明时初始化,不能在构造函数中初始化。
===========================================================
继承:
在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。
在Java中,不允许多继承。
===========================================================
方法的覆盖(override):
在子类中定义一个与父类同名、返回类型、参数类型均相同一个方法,称为方法的覆盖(全部相同才叫覆盖)。
覆盖发生在子类与父类之间。
===========================================================
特殊变量super:
super,提供了对父类的访问。
可以使用super访问父类被子类隐藏的变量或覆盖的方法。
每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。也就是说,如果父类中只有带参数的构造方法,我们就必须显式的用super(参数)调用父类的构造方法。
===========================================================
多态性:
通过覆盖父类的方法来实现,在运行时根据传递的对象引用,来调用相应的方法。
传递的是子类的应用就调用子类的应用,子类没有的方法就调用父类的方法。传递的是父类的应用就调用父类的应用
=========================================================== 
instanceof关键字:
判断一个类是不是另一个类的实例。
用法:
if(class1 instanceof  class2)
{
    ……
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值