Java基础3_1面向对象(2011 06 12)

Java基础3_1面向对象

一、面向对象和面向过程

1、举个例子来说明两者:

面向过程:例如创建一窗口,窗口和操作函数是谓语和宾语的关系。

面向对象:例如创建一窗口,窗口和操作函数是主语和谓语的关系。

二、面向对象的特征

1)封装(encapsulation

2)继承(inheritance

3)多态(polymorphism

三、类和对象

1、定义:类是对一类事物的描述,是抽象,概念上的定义。

对象是对实际存在的。该类的每个个体,称为实例。

属性用成员变量来描述。

例如:假如对象是汽车,那么累就是对汽车的设计图纸。

2、对象的产生 例如: Person p1 = new Person();

p11保存了堆内存中的首地址

3、对象的使用

创建新的对象后,使用“对象名”对象成员的格式来访问对象的属性和方法。例如p1.namename在前面定义)

4、对象的生命周期

1)离开p1的作用域,p1失效,person的对象成为垃圾。

2p1 =new person();p2 = new person();p1=null;

3p1=null;

5、对象的比较

==”是比较两个变量的值是否相等;

Equals是比较两个变量的内容是否一致。

例如:两个String类型的变量----str1str2比较(str1==str2),是比较它们的首地址,显然是不等的

注意:所有的对象都有一个equals()方法。

5、匿名对象的使用

(1)如果对一个对象只需要进行一次方法的调用的话,就可以使用匿名对象,例如:new person.shout();(shout()是一个方法)

(2)我们经常使用匿名对象作为实参传递给一个函数调用 例如:getSomeOne(new person);getSomeOne()是一个方法)

6setget方法实现类得封装性

说明:一个类就是一个小模块,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干扰)弱耦合(提供给外部尽量少的方法调用)

setget一般格式如下:

int age;

private void setAge(int x)

{

       If(age<0)

              return;

age=x;

}

public int getAge()

{

       return age;

}

 

四、构造方法

1、条件:

1)有与类相同的名称

2)不含返回值(也不含void

3)它不能在方法中用return返回值

2

1)对象产生时,构造方法会被调用,构造方法可以用来对变量的初始化

2)当没有定义构造方法时,编译器会默认为我们加上一个不带参数的构造方法

例如:class person

{

int age;

string name;

//假如我们没有定义构造方法的话,编译器会在这里为我们加上一个不带参数的构造方法//public person(){ }  当我们定义了构造方法,编译器就不会给我们加上构造方法了

}

3、当有多个构造方法时,它的调用是根据参数参数类列表来调用的。

六、this的使用

1this,它在函数内部就是这个函数所属的对象的引用变量

2、一定要使用this关键字的情况

1)类的成员变量名和对其赋值的成员方法的形参同名是必要的,需使用this来区分

例如:private String name;

    public Person22(String name)

    {

       this.name=name;

    }

2)假如有一个容器类和一个部件类的某个方法中,要创建部件类的实例对象,二部件类的构造方法要接收代表其所在容器的参数就是用this传递

class Container

{

    Component comp;

    public void addConponent(Component comp)

    {

       comp = new Component(this) ;      

    }

}

class Component

{

    Container c;

    public Component(Container c)

    {

       this.c = c;

    }

}

3、构造方法在产生对象时被java虚拟机自动调用的,我们可以在一个构造方法中其他重载的构造方法,用this(参数列表的形式)

七、垃圾回收的分析

1java的垃圾回收类似于C++的析构方法

2、调用javafinalize()方法,对象变成垃圾时才调用。

3System.gc();来进行垃圾回收

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值