Java类与对象

类与对象

首先,需要明白Java是一门完全面向对象的编程语言。
那么什么是面向对象?维基中文中是这样描述的:

面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。

对象

面向对象编程思想来源于现实生活,与我们日常表述和思考的方式很相似。面向对象编程就是使用面向对象编程思想设计的代码格式,从而做到对现实生活的模拟,也符合了我们的日常生活习惯。在现实生活中只要是一个具体的物体或者事物都是对象,比如说:具体的一个杯子,你自己。
在生活中,我们是怎么去描述对象的呢?以你喝水的被子为例,它就具有特征和功能。描述时,你就可以说它是怎么样的、它能够干嘛。

那么为什么会说需要是一个具体的事物才能叫作对象呢?杯子不能是对象呢?为什么不是呢?想到杯子,你的第一反应应该就是喝水用的,大概的样子,而不去管是具体的哪一个。也就是说,杯子于你而言,是一类具有相似特征和功能的事物,是抽象的。
程序中的类(Class)就定义了一件事物的抽象特点,它的定义包含了数据的形式以及对数据的操作:

  • 属性 :根据对象的特征进行定义
  • 方法 :
    • 普通方法 :根据对象的功能(行为)进行定义
    • 构造方法

java中类的格式如下:


public class 类名  {
		//定义属性的格式
		访问修饰符  数据类型  属性名;
		
		//定义构造方法的格式
		访问修饰符  构造方法名(数据类型 参数名,...){
		}
		
		//定义普通方法的格式
		访问修饰符  返回值数据类型  方法名(数据类型 参数名,...){
		}
	}

Java中类是模板,是基本单位。

对象(Object)是类的实例。比如,你定义了狗这个类,我们无法让狗这个类去吠叫,但是我们可以让对象“小黑"去吠叫,正如狗可以吠叫,但没有具体的狗就无法吠叫。
所以我们需要实例化对象:

类名 对象名 = new 构造方法名(参数值....);

根据对象名调用属性和方法的格式:

对象名.属性名;
对象名.方法名(参数值,...);

构造方法

上文多次提到构造方法,那么什么是构造方法? 构造方法就是类中用来实例化对象初始化对象的方法。

访问修饰符  构造方法名(数据类型 参数名,...){
		}

值得注意的是:

  1. Java会给类提供一个无参数的构造方法,如果你自定义了则默认的构造方法会被覆盖无法使用,只能使用自定义的构造方法;
  2. 构造方法名必须和类名完全一致,包括大小写;
  3. 构造方法不能定义返回值数据类型。

它和普通的方法区别有:

  1. 返回值数据类型的定义不同;
  2. 方法名不同;
  3. 构造方法是用来实例化对象;普通方法表示的是对象的行为(功能、用途)。
  4. 每使用一次构造方法就会实例化一个新的对象;

重载

对于一个吃货,吃简直是必备技能,比如:吃(包子)、吃(米线、鸡腿),你可能注意到吃的个数不一样,对于方法而言,需要的参数就有区别,这个时候就会用到重载。
方法重载的条件包括:

  1. 方法名必须要完全一致,包括大小写;
  2. 方法所带的参数个数,参数类型,参数顺序至少要有一个不同;
  3. 同一个类中可以进行方法重载;有继承关系的子类和父类中也可以进行方法重载。
    调用时,会根据给定的参数判断具体执行哪个方法。构造方法也可以重载,上面说过,构造方法是用来实例化对象,当同类包含有不同属性个数的对象时,就需要用到重载了,比如:有线鼠标和无线鼠标。

this

程序中常会出现属性名和参数名相同的情况,这种情况下,Java会采取就近原则,表示的就是参数,如果我们想访问到属性就需要用到this,this相当于你我他这类代词,表示的就是当前调用方法的对象
具体使用方法和意义如下:

//表示调用对象的属性
this.属性名;
//表示调用对应参数的构造方法。
this(参数值,...);
//表示调用普通方法
this.方法名(参数值,...);

看了这么多,先喝点橙汁吧。

在这里插入图片描述

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值