想要了解类和对象,我们需要首先了解什么是对象?
面向过程
面向对象对于从来没接触过的同学们来说,我们可能学过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必须放在构造方法中的第一条语句
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)