【JavaSE】类与对象(上)类是什么?对象是什么?
创始人
2024-01-20 11:37:51
0

文章目录

  • 面向过程与面向对象
  • 认识类和对象
    • 创建类
    • 类的实例化
  • 内存分布
    • 注意事项
  • 总结

面向过程与面向对象

我们说C语言是面向过程的编程语言,而Java是面向对象的编程语言,那究竟什么才是面向过程与面向对象呢?我们举一个例子来帮助大家理解:我们现在的需求是洗衣服,如何完成我们这个需求呢?

面向过程:
准备一个盆 - > 加水 - > 加洗衣粉 - > 洗衣服 - > 倒水 - > 加水 - >洗衣服 - > 拧干 - > 晾衣服
面向对象:
把衣服放进洗衣机,洗衣机洗完甩干。

通过这个例子我们可以看出面向过程和面向对象的区别,面向过程在实现一个洗衣服的需求时更注重如何完成洗衣服,而面向对象则注重于让洗衣机完成这个需求,怎么完成不需要关心。都可以完成我们的需求。只不过一个关注的是过程,而一个关注的是对象之间的合作。二者没有好坏之分。

认识类和对象

在上面我们比较了面向过程和面向对象两个思想的区别,那么在Java中究竟什么是对象呢?女朋友嘛?显然不是,要想讲明白对象我们不得不提类的概念,因为对象都是类实例化出来了的。那什么是类呢?类就是对一个实际事物的描述,例如人,我们可以用人类来描述,类描述的既然是一个实际事物肯定会有自己的属性,例如:男人,女人,年龄等,我们在类里面可以通过成员变量来定义类的属性,当然一个人类也会有自己的行为,在类里我们可以通过成员方法来描述行为

创建类

大致了解类是什么之后我们如何创建一个类呢?基本语法是这样的:

class ClassName{
field; // 字段(属性) 或者 成员变量
method; // 行为 或者 成员方法
}

我们来为大家演示创建一个人类。

public class Person {public String name;public int age;public String sex;public void eat() {System.out.println("吃饭");}public void sleep() {System.out.println("睡觉");}public void show() {System.out.println("name " + name + " age " + age + " sex " + sex);}
}

上面的代码就实现了一个人类的创建,人都有名字、性别、和年龄所以我们创建人类时,用于描述人类的成员变量也创建为姓名、性别、和年龄,因为人每天都要吃饭睡觉,所以他的成员方法可以是吃饭和睡觉。
注意事项

1、在定义类时需要注意,类名必须采用大驼峰来书写。
2、一般一个文件当中只写一个类。
3、main方法所在的类中一般要用public修饰
4、public修饰的类必须要和文件名相同
5、不要轻易修改public类的名称

类的实例化

定义了一个类,就相当于在计算机中定义了一种新的类型,那么当我们创建好了一个类之后如何使用呢?当我们有了一个类的时候,就好像我们建房子时有了图纸,如果我们要使用房子必须按照图纸造出房子后使用,类也是一样,类并不能直接使用,需要使用类实例化出一个对象后进行使用。
基本语法

1、通过new关键字可以创建一个对象
2、使用.来访问对象中的方法和属性

下面我们来看代码:

public class Person {public String name;public int age;public String sex;public void eat() {System.out.println("吃饭");}public void sleep() {System.out.println("睡觉");}public void show() {System.out.println("name " + name + " age " + age + " sex " + sex);}
}

还是上面我们已经创建好的人类,当我们需要使用时

public class Test {public static void main(String[] args) {Person p = new Person();p.name ="qwq";p.age = 18;p.sex = "nan";p.eat();p.sleep();p.show();}
}

首先我们Person p = new Person();实例化一个Person类的对象,通过这个对象去访问成员变量,并且给成员变量赋值,我们看这个p叫做qwq,18岁,性别为nan,还可以通过它调用成员方法。我们觉得一个对象不够,我们还可以在new一个对象:

public class Test {public static void main(String[] args) {Person p = new Person();p.name ="qwq";p.age = 18;p.sex = "nan";p.eat();p.sleep();p.show();Person p2 = new Person();p.name = "123";p.age = 20;p.sex = "nv";p.show();}
}

我们执行以下看一下结果:
在这里插入图片描述

内存分布

在上面我们new了两个Person类的对象,那么他们的空间分配是怎样的呢?我们通过画图来给大家讲解。
在这里插入图片描述
定义了一个类,就相当于在计算机中定义了一种新的类型,与int,double类似,所以 Person p = new Person();我们可以理解为创建了一个Person类型的变量,引用变量名为p,因为是在方法内实例化的,所以是局部变量所以在栈上开辟一块空间,储存的是对象的地址,Java中new的东西都会在堆上开辟空间,所以会在堆上开辟一块空间存储成员变量,简单来说就是引用指向了对象。一个类可以实例化多个对象,每实例化一个对象都会开辟一块新的空间,所以每个对象都有属于自己的成员。

注意事项

1、当引用为null时,代表这个引用不指向任何对象
2、引用能不能指向引用?

 public static void main(String[] args) {Person p = new Person();Person p2 = new Person();p = p2;}

不可以,这样写代表了,p这个引用指向了p2这个引用指向的对象。

3、一个引用可不可以指向多个对象?

   public static void main(String[] args) {Person p =new Person();p = new Person();p = new Person();}

不可以,这样写最后p之指向了一个对象。只有最后一个语句有效,其他的都被覆盖了。

总结

进行一下总结:

1、类其实就是一个模板,用来描述一个实体。
2、类其实就是类型,是一种自定义的类型,可以用来定义变量。
3、 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
4、做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...