Java类与对象1

本文介绍了面向对象编程的基本概念,对比了Java与C/C++的区别,并详细阐述了Java中的类定义、实例化过程。类是模板,通过new关键字创建对象,即实例化。构造方法用于初始化对象,其特点是与类名相同、无返回值类型且在对象创建时自动调用。在Java中,未定义构造方法时,编译器会自动生成默认无参构造。实例化对象后,可以通过对象访问类中的属性和方法。
摘要由CSDN通过智能技术生成

一、什么是面向对象?

OOP:在java中,一切皆对象,语言实现的操作就是找到对象,使用对象。

而c/c++则是面向过程编程,语言的实现就是实现操作过程,至于操作的是谁,被操作的是谁,则不关心。

例如同样是洗衣服这一个流程,java关心的是什么样的衣服对应什么样的洗衣服方法,至于洗衣服方法内部如何操作,不关心。而c/c++关心的是洗衣服这个过程是怎么样的,先倒水再放洗衣粉再放衣服。

至于深入理解面向对象,放在后面的学习中。

二、类的定义与使用

一个源文件只有一个主类 public class,主类名称必须和源文件名称相同,但可以有很多普通类class。

使用关键字class来定义类

class 类名称{

//属性  成员属性  对象属性

//方法  成员方法  对象方法

}

定于一个dog类:

我们要注意的是  类只是一个模板!没有具体意义。没有具体对象那么这个类中任何属性方法都无法调用。

该类的所有成员属性和成员方法都定义在类中,不同对象的属性和方法表现出来也是不同的,属性和方法和具体对象强相关,这也是面向对象的一种体现。

在java中使用class来定义类的实质就是创建了一个新的类型,比如上图中Dog类,创建后和string类就没有区别。

三、类的实例化

通过类来产生对象,就叫类的实例化 ,使用new关键字来产生对象。

语法格式1:类名称  引用名称 = new 类名称();

 产生实例化对象后访问成员属性和方法就和正常的类一样了

例如     dog.name  //调用名称属性     dog.color //调用颜色属性

dog.barks  //调用叫方法

tips:用人类来类比,人类就是人的一个类,里面存在各种不同的成员属性和成员方法,成员属性我们举例 男  和  女,成员方法我们举例 如果你是女则做饭打扫卫生  和 如果你是男则外出打工。当没有人(对象)存在时,(此处可以理解为你还没有出生)这个类只是一个模板,没有任何意义,而当一个具体的人存在时(你出生了),就可以调用这个类中的属性和方法,比如你是男生,那么就可以调用类中性别属性确定你是男生,然后调用方法 如果你是男则外出打工。这就是具体对象访问类中具体属性和方法。如果换了一个对象比如换成女的,那属性和方法也会一同改变。

那么上图中产生Dog类实例化对象的这个操作叫什么?

构造方法!调用构造方法就是为了产生对象,给对象属性做初始化操作。特别的,我们可以在类中定义该类的构造方法,也可以不定义,具体参考构造方法的特点4.

构造方法的几个特点:

1 构造方法名字与类名称相同,无法自定义方法名称  比如上图中new Dog的Dog与类名称Dog一样

2 构造方法没有返回值类型声明,没有void

3 构造方法在创建对象时 ,由编译器自动调用,且只在对象产生时调用一次。

4 如果在定义类时,没有明确定义构造方法,则编译器会自动生成默认的无参构造,若定义了构造方法,则无参构造不再生成。

上图中Dog类中并未定义构造方法,于是编译器自己生成了默认的无参构造。如果自己定义了有参构造,那么在调用构造方法时一定要按照有参构造的格式来调用,否则无效,因为定义后默认的无参构造是不会生成的。

 正确写法为 Dog  dog = new Dog(n,c);

构造方法调用时JVM干了什么?

1 首先分析Dog类,如果Dog如果已经被加载进内存中(产生对象调用了),那么执行下一步,否则将Dog加载进JVM

2 执行new  在堆上开辟空间

3 调用构造方法为成员属性赋值  构造方法都是在产生对象时才赋值的,就算类中已经定义的属性中存在具体数值,没有对象时也不赋值。(没有具体数值的属性默认值为其数据类型的默认值)。

图一:定义类中属性有具体赋值,但没有调用构造方法产生对象时该值不存在 

图二|:当调用构造方法产生无参构造时,产生了对象,则赋值。

 总结

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花落尽舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值