JAVA类和对象

JAVA类和对象,第1张

前言

想要了解类和对象,我们需要首先了解什么是对象?


面向过程

对于从来没接触过的同学们来说,我们可能学过c语言,而c语言则面向过程语言,那什么是面向过程语言呢,就是必须我们想要解决一个问题,我们就要知道他的具体过程,从而根据过程的每一个步骤来编写程序,所以面向过程语言注重的是--过程.

面向对象

而JAVA这门面向对象语言(Object Oriented Program,继承OOP),对象?意思就是要创建多个对象,通过多个一起交互完成一件事情,在面向对象的世界里,我们要记住一句话--万物皆对象.

举一个例子:

在生活中,我们炒菜需要那些工具呢,锅、锅铲,还有菜和调料.

对于面向过程语言来说:我们需要知道什么时候放什么调料,控制火候和时长.

而对于面向对象语言 : 对象: 首先我们得找到这件事中所包含那些对象 ->1.锅 2.锅铲 3.配菜 4.调味料 我们把这些都看作一个对象, 不关心具体过程,我们只需要通过这几个对象之间的交互来完成作业.

类的定义

那么什么又是类呢,类 就相当于一张设计图 ,比如我们把汽车看作一个对象,那么在创建这个汽车之前,我们需要有一张设计图来定义这个对象.

所以在类这个设计图当中,我们就需要定义这个对象的属性和他的功能

class --为定义类的关键字     Car为类名

 图中我为大家举了几个属性的例子,比如你还可以加汽车的型号,颜色各种属性.

我的name 和 oil 前面加了一个private ,大家可以先不管,这是一个修饰符,我们之后会再说,可以先照着我的写.

注意事项: 1. 一般一个文件当中只定义一个类 2. main 方法所在的类一般要使用 public 修饰 3. public 修饰的类必须要和文件名相同 4. 不要轻易去修改 public 修饰的类的名称 类的实例化 用类的类型创建对象的过程,我们称为类的实例化,意思就是上文中说的照着设计图创建出一个新的房子. 在JAVA 中我们采用 new 关键字 ,配合类名来实例化对象。 这里我们再来演示创建一个狗类,大家可以先不看我的,自己试试能不能自己创建出一个类. 狗类  

 

这样一个类 (一个设计图) 就写好啦,设计图写好之后,我们就可以通过这个设计图来创建对象,我们上面说的创建的关键字是什么,--new--   

类名  你想要的对象名 = new 类名();

Dog dog = new Dog();

我们通过对象名.类中的成员,就可以调用并赋值.

注意事项 1.new 关键字用于创建一个对象的实例 . 2.使用 . 来访问对象中的属性和方法 . 3.同一个类可以创建多个实例 . 比如我还可以创建一个  Dog dog2 = new Dog(); 这样就体现出类的好处,我们就可以写一个类来创建多个对象. 构造方法

如何初始化对象

构造方法的作用就是对对象中的成员进行初始化,并不负责给对象开辟空间。
首先构造方法 的格式  必须与类同名,在创建对象时由对象自己调用,

 

 这里写了两个构造方法,有同学会问了,前面那个代码里都没有写构造方法,那你是怎么编译成功的,并且初始化的, 在一个类中,当你没有写构造方法时,编译器会自动帮你生成一份默认的构造方法,而这个构造方法一定是无参的

注意事项: 1. 名字必须与类名相同 2. 没有返回值类型,设置为 void 也不行 3. 创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次 4. 构造方法可以重载 ( 用户根据自己的需求提供不同参数的构造方法 ) 5.如果自己定义了有参构造器,那么编译器就不会默认生成无参构造器,如果需要需要你自己写. 但是你仔细看看我上面的有参构造器能赋值吗? name  age  color 这三个变量为构造方法的形参 ,那么当这个方法销毁时,他们也销毁了,并没有为类里面的成员赋值,所以我们需要另外一个关键字 this. this 的引用 this 引用的是调用成员方法的对象,在一个变量前面加上this.就代表这个变量指的是这个类中定义的成员变量,这样我们就可以对他进行赋值 注意事项: 1. this 的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型 2. this 只能在 " 成员方法 " 中使用 3. " 成员方法 " 中, this 只能引用当前对象,不能再引用其他对象 this有三种用法: 1.this.成员变量 2.this.成员方法 3.this();   调用构造方法   比如上一个代码中,我们就可以在无参构造方法中调用自己写的有参构造器,就像这样,而且this必须放在构造方法中的第一条语句

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/920903.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存