day10_类和对象的入门
软件存在的意义就是为了解决现实世界当中的问题,它必然模拟现实世界,也就是说现实世界中有什么,软件中就对应有什么。面向对象编程思想中关注点是“对象”或者“事物”,那么在编程语言当中要想创建对象则必须先有类,那么类和对象分别是什么,它们的区别和联系是什么呢?
类
- 类:是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。我们可以将其理解为对象的设计图。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。 类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。例如:我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。
- 类:我们叫做class。 对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。通过类可以创建对象,对象又被称为实例(instance),这个过程也可以称为实例化。
现实中,描述一类事物:
- 属性:就是该事物的状态信息。例如:名字、体重、年龄、颜色
- 行为:就是该事物能够做什么。例如: 行为:走、跑、叫。
类的定义格式:

详解
-
-
成员方法
初识类中的成员:Java中的类可以包含下面几个部分,我们先看一下是什么,之后在慢慢学习
/* 计算机程序中的类,类的设计: 5大成员(5大组成部分): 1、属性:数据特征 2、方法:行为特征,功能特征 3、构造器:创建对象时用 4、代码块:在类初始化和对象初始化时用的 5、内部类:在某个大的事物中,包含了一个独立的小的事物类别,而且一般这个小的事物只为大的事物服务时 */ //Body类 class Body{ //类的成员之一:属性 double weight; char gender; //类的成员之二:方法 void eat(){ System.out.println("吃饭"); } void sleep(){ System.out.println("睡觉"); } //类的成员之三:构造器 Body(){ } Body(double weight, char gender){ this.weight = weight; this.gender = gender; } //类的成员之四:代码块 { System.out.println("非静态代码块"); } static{ System.out.println("静态代码块"); } //类的成员之五:内部类 class Heart{ public void beat(){ System.out.println("砰砰跳"); } } }
对象
对象是一类事物的具体体现,是能够看得到摸的着的真实存在的实体。对象是类的一个实例,必然具备该类事物的属性和行为。例如:每个人类都有名字,身高,体重,而对象就是一个个具体的人,比如说张三丶李四..
类与对象的关系
- 类是对一类事物的描述,是抽象的
- 对象是一类事物的实例,是具体的
- 类是对象的模板,对象是类的实体
我们可以把手机的设计图纸看成类,你手中实实在在的手机看成对象
现实世界的一类事物。
- 属性:事物的状态信息。
- 行为:事物能够做什么。
Java中用class描述事物也是如此:
- 成员变量:对应事物的属性,该类事物的状态信息,在类中通过成员变量来体现。
- 成员方法:对应事物的行为,该类事物有什么功能,在类中通过成员方法来体现
当我们设计好一个类的时候,就可以根据这个类来创建对象了。创建的对象的语法格式如下所示:
//声明类 class Person{ //成员变量(声明属性) String name; int age; char gender; }
下面我们给上面声明的类来创建对象
/* 创建对象的格式: 类名 对象名 = new 类名(); 调用成员变量的格式: 对象名.变量名 调用成员方法的格式: 对象名.方法名(); */ public class Demo{ public static void main(String[] args){ //(1)创建对象 Person p = new Person(); //(2)为p对象的name属性赋值 p.name = "张三"; //为p对象的age属性赋值 p.age = 23; //为p对象的gender属性赋值 p.gender = '男'; //(3)访问/显示对象的属性的值 System.out.println("姓名:" + p.name); System.out.println("年龄:" + p.age); System.out.println("性别:" + p.gender); } }
对象内存图
单个对象内存图
查看下面案例,分析内存中的变化情况
package com.wrg.demo04; public class Student { // 成员变量: 属性 String name; int age; // 成员方法: 行为 public void study(){ System.out.println("学生正在学习Java..."); } public void doHomeWork(){ System.out.println("学生正在做作业敲代码..."); } } class Test { public static void main(String[] args) { // 创建Student对象 Student stu = new Student(); //直接打印对象名,就是输出他的内存地址值 System.out.println(stu);// com.wrg.demo04.Student@4554617c // 访问成员变量 stu.name = "冰冰"; stu.age = 18; System.out.println(stu.name+","+stu.age); // 访问成员方法 stu.study(); stu.doHomeWork(); } }
图解分析




浙公网安备 33010602011771号