8.Java面向对象---类、属性和方法

news/2024/7/3 0:53:47

Java面向对象—类、属性和方法

在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同时,当我们认识一个新事物的时候,我们一般来说是从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类,以达到认识新事物。在Java中,类是对一组具有相同特征和行为的对象的抽象描述。可以看出和生活中对类的定义很像。在Java程序中,我们将其相同的特征称为属性,行为则称为方法(函数)。

一、类和对象

Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念。

  • 类:类是一个模板,它描述一类对象的行为和状态。
  • 对象:对象:对象是类的一个实例。

综上所述,看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。
对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

1、类的定义:
在这里插入图片描述
在这里插入图片描述
代码示例:

public class Admin {

}

示例说明:

  • public 是类的修饰符,表明该类是公共类,可以被其他类访问。修饰符会在面向对象—封装中详细介绍
  • class 是定义类的关键字
  • Admin 是类名称

对象是类的一个实例,创建对象的过程也叫类的实例化。对象是以类为模板来创建的。
在Java中,使用new关键字来创建对象,一般有以下三个步骤:

  • 声明:声明一个对象,包括对象名称和对象类型。
  • 实例化:使用关键字new来创建一个对象。
  • 初始化:使用new创建对象时,会调用构造方法初始化对象。

代码示例:

Admin admin=new Admin();

二、类的属性

1、类属性的定义
类的属性,是用来描述这一类的相关信息,例如管理员是一类人的总称,那么管理员就有自己的属性,大概包括姓名,年龄,用户名,密码等。定义类的属性通过声明变量的形式来完成。每个属性都有它对应的访问修饰符、数据类型、变量名。
代码示例:

public class Admin {

	public String name;
	
	public int age;
	
	public String loginName;
	
	public String password;
	
}

ps:定义类的属性可以不为变量赋初始化值,属性的初始值会在类对象被实例化时进行赋值。

2、类属性的分类:

  • 局部变量:在方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中、方法体之外的变量。这种变量在创建对象的时候实例化(分配内存)。成员变量可以被类中的方法和特定类的语句访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。static 也是修饰符的一种。

3、this关键字
当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。在本类中,方法内可以通过this访问累的非静态变量和方法。

三、类的方法

1、类方法的定义
Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function)。对于一些复杂的代码逻辑,如果希望重复使用这些代码,并且做到“随时任意使用”,那么就可以将这些代码放在一个大括号“{}”当中,并且起一个名字。使用代码的时候,直接找到名字调用即可。
在这里插入图片描述
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

  • 访问修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法会被谁访问到。
  • 方法修饰符:用来修饰特殊方法的修饰符。
  • 返回值类型:方法可能会返回值。return
    ValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType
    是关键字void。(构造方法除外)
  • 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
  • 方法参数:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
  • 方法体:方法体包含具体的语句,定义该方法的功能,使用大括号作为方法范围。

代码示例:

public static void main(String[] args) {

}

2、特殊的方法----构造方法

在类实例化的过程中自动执行的方法叫做构造方法,它不需要你手动调用。构造方法可以在类实例化的过程中做一些初始化的工作。

代码示例:

	public Admin() {
		
	}
	
	public Admin(String name,int age,String loginName,String password) {
	
		this.name=name;
		
		this.age=age;
		
		this.loginName=loginName;
		
		this.password=password;
		
	}

构造方法注意事项:

  • 构造方法的名称必须与类的名称相同,
  • 构造方法没有返回值。
  • 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。
  • 构造方法是用来初始化类对象,并为类的成员变量赋值
  • 构造方法可以有多个,通过方法重载实现

3、特殊的方法----静态方法
有时你希望定义一个类的方法,使它的使用完全独立于该类的任何对象。通常情况下,类方法必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在方法的声明前面加上关键字static(静态的)就能创建这样的方法,就是静态方法。我们常用的静态方法就是main方法。

代码示例:

	public static void ageAdd() {
		System.out.println("年龄随着自然年增长");
	}

注意事项:

  • 它们仅能调用其他的static 方法。
  • 它们只能访问static数据。
  • 它们不能以任何方式引用this 或super(关键字super 与继承有关)
  • 它们只能被“.”运算符调用

4、方法的使用
类对象实例化后,可以通过调用方式进行使用方法。
代码示例:

	Admin admin=new Admin();
	admin.ageAdd();

方法被调用后,会执行方法中的代码,从而实现代码的复用。

5、方法的重载
如果一个类中有多个具有相同名称但参数不同的方法,则称为方法重载。如果只需要执行一个操作,具有相同的方法名称将增加程序的可读性。

方法重载的特点:

  • 与返回值类型无关, 只看方法名和参数列表
  • 在调用时, 虚拟机通过参数列表的不同来区分同名方法

代码示例:

	public void ageAdd() {
		System.out.println("年龄随着自然年增长");
	}
	
	public int ageAdd(int year) {
		System.out.println("年龄随着自然年增长");
		return this.age+=year;
	}

在这里插入图片描述
总结:类是最基本的面向对象的呈现,通过类的属性和方法,来定义某一类事物的总称,有了类的概念,就可以是我们更清晰的理解计算机,更清晰的理解编程。


http://lihuaxi.xjx100.cn/news/1023810.html

相关文章

Python json详解

一、抓取文本数据 结构化数据:json,xml(极其的稀少) 。直接转化为python类型 非结构化数据:HTML,字符串。正则表达式、xpath 二、JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 它使得人们…

【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】

【写在前面】对于我前端开发出身的写接口并测试的话,我还是更喜欢用swagger,主要它那种界面用起来比较的舒服,当然很多人还是习惯性的用post进行测试,接下来我就来和大家说说怎么将swagger引入到你的项目中去。及swagger该如何使用。 涉及知识…

[Linux]破解原系统、安装新系统

​⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的…

4月Google Play政策更新,游戏上架需要注意这几点

3月21日,据路透社报道,由于发现国内某知名电商应用存在恶意软件问题,谷歌已暂时将该APP从商店下架,并表示:将该APP下架是一种安全预防措施,已经下载的用户也会收到警告,提示他们进行卸载。 4月…

Prometheus监控Spring Cloud Gateway

📚概述 API网关作为应用服务与外部交互的入口,通过对API网关的监控,可以清晰的知道应用整体的请求量,以便根据不同的并发情况进行扩容处理。 对API网关的监控也是相当必要的。 通过Prometheus监控Gateway与监控普通Springboot项目…

九耶丨阁瑞钛伦特-教会你对商场顾客数据集的可视化分析!

在实际场景中,比如本项目的商场顾客数据集,只包含一批顾客的背景信息,但并不包含顾客的类别信息(顾客是属于什么类别的)。我们面对的许多真实数据集都是没有提供属性标签的,对于这种无标签的数据&#xff0…

0401脚手架配置代理-ajax-react

1 场景 跨域 现在很多web应用都是基于b\s架构并且实现前后端分离,当前端(js)向后端发送请求响应数据,但是由于浏览器的同源策略,会产生跨域问题。 关于同源策略和跨域问题的产生,可参考跨域问题及跨域解…

持续集成流水线:如何通过自动化解放你的双手?

你好,我是黄俊彬。 在过去的很多咨询项目中,我遇到了很多团队都没有很好运用持续集成流水线的实践。从团队协作的角度上来看,在版本发布过程中,经常出现测试依赖开发手工生成制品、版本发布也从开发本地出版本的问题。 而且项目…