面向对象-->类和对象

面向对象编程的概念

  • 万物皆对象。
  • 面向对象指以属性和行为的观点去分析现实生活中的事物。
  • 面向对象编程指先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程。
  • 面向对象编程是软件产业化发展的需求。
  • 理解面向对象的思想精髓(封装、继承、多态),至少掌握一种编程语言

类和对象的概念

  • 对象主要指现实生活中客观存在的实体,在Java语言中对象体现为内存空间中的一块存储区域。
  • 类简单来就是“分类”,是对具有相同特征和行为的多个对象共性的抽象描述,在Java语言中体现为一种引用数据类型,里面包含了描述特征/属性的成员变量以及描述行为的成员方法。
  • 类是用于构建对象的模板,对象的数据结构由定义它的类来决定。

类的定义

class 类名 {						class Person {
	类体;
} 								 }
  • **注意:**通常情况下,当类名由多个单词组成时,要求每个单词首字母都要大写。

成员变量的定义

class 类名 {						 class Person {
	数据类型 成员变量名 = 初始值; 		String name;
}								 	 }
  • 注意:当成员变量由多个单词组成时,通常要求从第二个单词起每个单词的首字母大写

成员变量的初始值

  • 对象创建后,其成员变量可以按照默认的方式初始化,具体规则如下:
    在这里插入图片描述

成员方法

成员方法的定义

class 类名 {								  class Person {
	返回值类型 成员方法名(形参列表) {				  void show() {
	成员方法体; 								  	 System.out.println("没事秀一下")
	} 										   }				 
} 											}
  • 当成员方法名由多个单词组成时,要求从第二个单词起每个单词的首字母大写。

返回值类型的详解

  • 返回值主要指从方法体内返回到方法体外的数据内容。
  • 返回值类型主要指返回值的数据类型,可以是基本数据类型,也可以是引用数据类型。
  • 当返回的数据内容是66时,则返回值类型写 int 即可
  • 在方法体中使用return关键字可以返回具体的数据内容并结束当前方法。
  • 当返回的数据内容是66时,则方法体中写 return 66; 即可
  • 当该方法不需要返回任何数据内容时,则返回值类型写void即可

对象的创建

  • new 类名();
  • 注意:
    • a.当一个类定义完毕后,可以使用new关键字来创建该类的对象,这个过程叫做类的实例化。
    • b.创建对象的本质就是在内存空间的堆区申请一块存储区域, 用于存放该对象独有特征信息。

创建两个对象的原理分析
在这里插入图片描述

引用的定义

  • a.使用引用数据类型定义的变量叫做引用型变量,简称为"引用"。

  • b.引用变量主要用于记录对象在堆区中的内存地址信息,便于下次访问。

语法格式						   Person p = new Person();

类名 引用变量名;				     p.name = "张飞";

引用变量名.成员变量名;	 		   System.out.println(p)

案例题目

编程实现Person类的定义和使用。

/*
    编程实现Person类的定义
 */
public class Person {

	// 数据类型 成员变量名 = 初始值;   - 其中=初始值 通常都省略不写
	String name; // 用于描述姓名的成员变量
	int age;     // 用于描述年龄的成员变量

    // 自定义成员方法实现所有成员变量的打印
    // 返回值类型 方法名称(形参列表) { 方法体; }
	void show() {
		// 成员变量和成员方法都属于类内部的成员,因此可以直接访问成员变量不需要再加引用.的前缀
		System.out.println("我是" + name + ",今年" + age + "岁了!");
	}

    public static void main(String[] args) {
		
		// 1.声明Person类型的引用指向Person类型的对象
		// 数据类型(类名) 引用变量名 = new 类名();
		Person p = new Person();
		// 2.打印对象中的成员变量值
		// 引用变量名.成员变量名
		//System.out.println("我是" + p.name + ",今年" + p.age + "岁了!"); // null 0
		// 引用变量名.成员方法名(实参列表);
		// 调用方法的本质就是根据方法名跳转过去执行方法体后再跳转回这个位置
		p.show();
		
		System.out.println("-----------------------------------------------------");
		// 3.修改成员变量的数值
		p.name = "zhangfei";
		p.age = 30;
		// 4.再次打印修改后的数值
		//System.out.println("我是" + p.name + ",今年" + p.age + "岁了!"); // zhangfei 30
		p.show();
	}	
}

在这里插入图片描述

案例题目

编程实现Point类的定义,特征有:横纵坐标(整数),要求在main方法中声明Point类型的引用指向Point对象并打印特征,然后将横纵坐标修改为3和5后再次打印

/*
    编程实现Point类的定义
 */
public class Point {
	
	int x; // 用于描述横坐标的成员变量
	int y; // 用于描述纵坐标的成员变量
	
	// 自定义成员方法实现成员变量数值的打印
	void show() {
		System.out.println("横坐标是:" + x + ",纵坐标是:" + y);
	}
	
	public static void main(String[] args) {
		
		// 1.声明Point类型的引用指向Point类型的对象
		Point p = new Point();
		// 打印成员变量的数值
		//System.out.println("横坐标是:" + p.x + ",纵坐标是:" + p.y); // 0 0
		p.show();
		
		System.out.println("-----------------------------------------------");
		// 2.将横纵坐标修改为3和5后再次打印
		p.x = 3;
		p.y = 5;
		//System.out.println("横坐标是:" + p.x + ",纵坐标是:" + p.y); // 3 5
		p.show();
	}
}

在这里插入图片描述
程序的执行流程和内存分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-emgFqLjW-1630952872695)(E:\课程学习资料引用的图片\01 程序的执行流程和内存分析.png)]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~忆缘

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

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

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

打赏作者

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

抵扣说明:

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

余额充值