Java学习笔记(四)类与对象

Java硬核程序设计实验“类与对象”详解【细节满满&源码完整】 目录 ☀️|一、实验目的 ☀️|二、实验内容 ⭐️1、编程创建一个立方体类Cube ⭐️2、设计并实现一个课程类,代表学校中的一门课程... ⭐️3、设计并实现一个“信电工程学院学生通信录”系统 ☀️|三、实验源代码 ❥1.源代码: ❥2.源代码: ❥3.源代码: ☀️|四、实验总结 ☀️|一、实验目的 1.掌握类的定义和使用、对象的声明和创建; 2.理解构造方法的作用,掌握构造方法定义和使用; 3.理解类变量与实例变量,类方法与实例方法的区别; 4.掌握包的概念与使... 阅读详情

1. 类与对象:

从语义上理解,类是对象的模板,对象是类的实例,从语法上理解,类是一种数据类型,对象是这种类型的变量。在类的内部,方法可以直接访问该类的私有变量,但对于外部的类,则不可。注意类中的字段默认为private。

2. 成员方法的修饰:

public,private,protected(权限修饰),static(类方法),final(修饰的方法不能被覆盖和重载)。

3. 封装

(1)概念:

①.将属性私有化,提供公有方法访问私有属性

②.通过公有方法访问私有属性,通过setter和getter方法访问

(2)封装的实现:

①.修改属性的可见性来限制对属性的访问

②.为每个属性创建一对赋值(setter)方法和取值(getter)方法

③.在setter和getter方法中,加入对属性的存取限制 

(3)技巧:快速封装类的字段:源文件中点击右键,选择"source",再选择"Generate Getters and setters..."。

4. 类的设计规则:

①.取有意义的名字

②.尽量将数据设计为私有属性

③.尽量对变量进行初始化

④.类的功能尽量单一

5. 构造函数满足的规则:

①.方法名与类名相同

②.没有返回类型,注意也不能为void

6. 使用new关键字调用构造方法,构造方法非常适于对属性的初始化

①.自己编写的有参构造函数会替换默认的潜在构造函数。

②.构造方法不能手工调用,会在创建类的对象时被系统自动调用。

③.一个类可以没有构造方法(隐式的无参构造方法),也可以有多个构造方法,他们之间构成重载关系。

④.构造方法不能被继承。


注意事项:

①自动初始化只适用于成员变量,方法体中的局部变量不能被自动初始化,必须赋值后才能使用

②在java中,如果一个类没有明显的表明哪一个类是它的父类,Object将会被默认为它的父类。


程序说明:

首先,构造一个Student类:

public class Student {
	public String name;
	public char sex;
	public String birthday;
	private int compuScore,mathScore;
	
	//构造函数初始化成员变量
	public Student(String name, char sex, String birthday) {
		super();
		this.name = name;
		this.sex = sex;
		this.birthday = birthday;
	}

	public int getCompuScore() {
		return compuScore;
	}

	public void setCompuScore(int compuScore) {
		this.compuScore = compuScore;
	}

	public int getMathScore() {
		return mathScore;
	}

	public void setMathScore(int mathScore) {
		this.mathScore = mathScore;
	}
	
	//求取学生成绩的平均分
	public double getAverScore(){
		return (compuScore+mathScore)/2.0;
	}
	
	//获取最高成绩
	public int getMaxScore(){
		int max;
		if(compuScore>mathScore)
			max = compuScore;
		else
			max = mathScore;
		return max;
	}

	@Override
	public String toString() {
		return "Student [name=" + name + ", sex=" + sex + ", birthday="
				+ birthday + ", compuScore=" + compuScore + ", mathScore="
				+ mathScore + "]";
	}
	
	
}


其次,编写测试类testStudent:

public class testStudent {
	public static void main(String[] args) {
		Student stu = new Student("Daniel",'M',"1999.1.2");
		System.out.println(stu.toString());
		stu.birthday = "1989.3.11";
		System.out.println(stu.toString());
		stu.setCompuScore(90);
		stu.setMathScore(85);
		System.out.println("计算机成绩:"+stu.getCompuScore());
		System.out.println("数学成绩:"+stu.getMathScore());
		System.out.println("平均成绩:"+stu.getAverScore());
		System.out.println("最高成绩:"+stu.getMaxScore());
	}
}

测试的结果为:

Student [name=Daniel, sex=M, birthday=1999.1.2, compuScore=0, mathScore=0]
Student [name=Daniel, sex=M, birthday=1989.3.11, compuScore=0, mathScore=0]
计算机成绩:90
数学成绩:85
平均成绩:87.5
最高成绩:90




JAVA面向对象编程(孙卫琴)读书笔记(三) 博文链接:https://p48376382.iteye.com/blog/120701 立即下载

相关推荐

C++学习(四六六)Multiple parse contexts are available for this file

Note: Multiple parse contexts are available for this file. Choose the preferred one from the editor menu 参考: "Multiple parse contexts" in Qt creator | Qt ForumHi Do you use sessions? https://bugreports.qt.io/browse/QTCREATORBUG-18521 Anyway, its not.

hankern的专栏 4610

javascript调用一个函数(对象),new和直接调用的区别

function Man(age){ this.sex="male"; this.age=age; } m1=Man(20); m2=new Man(21); m1就是函数Man()执行的返回值,也就是undefined. 在函数执行过程中,属性被加到全局作用域或者Man方法所属的对象上了。执行之后window.sex=="male" 而m2是Man的实例,Man {sex:"male",age:21} function Man(age) { var obj = new Object(); .

有的话没说出来之前,你是他的主人,一旦说出来你就成了他的奴隶||想要干好事,别太把自己当人,别把别人太不当人||认识这个人就是开了一扇窗户,就能看到不一样的东西,听到不一样的声音,能让你思考、觉悟,这已经够了 1024

微信小程序消息推送全攻略:从模板消息到订阅消息的实战避坑指南

本文深入解析微信小程序消息推送机制,对比模板消息、订阅消息与客服消息的核心差异与适用场景。重点提供订阅消息从用户授权设计、前端代码实现到后端稳定发送的完整实战指南,并分享提升消息点击率的文案与运营技巧,帮助开发者构建高效、用户友好的消息推送体系。

b3n4m5q6w7的博客 335

Java--eclipse代码自动提示

java编写的时候,需要使用Alt+/来进行代码补全,但是eclipse提供了自动代码提示。 选中windows–>perferences,然后按下图顺序选中Auto activation triggers for Java,在右边的输入框内,在右边的.之后输入26个字母 ...

weixin_43532218的博客 310

eMMC FFU固件更新实战:从协议解析到设备修复

本文详细解析eMMC FFU固件更新技术,从协议原理到实战操作,涵盖EXT_CSD寄存器操作、命令流状态机解析及专业工具使用指南。通过真实维修案例,展示如何利用FFU机制修复设备故障,并提供高级优化技巧与安全注意事项,是硬件工程师和维修技术人员的实用参考。

weixin_29191761的博客 378

简单搭建 可视化日志+链路追踪

JAVA 可视化日志、链路追踪、plumeLog、Tlog、Logback

qq_39535439的博客 1204

类的概念、属性与方法

它必须要被命名为__init__,括号里面可以放任意数量参数,但是第一个永远是被占用的,得用于表示对象自身,约定俗成叫self,它能帮你把属性的值绑定在实例对象上。self.name="张三"说明对象的属性是张三,如果写成name = "张三",前面没有self的话,Python只是在给普通的name变量赋值。方法需要这个self的作用:一个是在方法里面去获取或修改和对象绑定的属性。并不是所有对象属性的名字都叫张三,所以应该给__init__更加灵活的属性赋值。3.能够打印出该学生的所有科目成绩。

u010971561的博客 431

【ENVI初学】查看影像空间分辨率及重采样

例如,如果线段长度为900米,对应的像素数量为30个,那么影像的空间分辨率为30米。通过计算长度与像素数量的比值,即可得到影像的空间分辨率。,在弹出的对话框中,输入重采样后输出文件的xy分辨率大小。在测量结果窗口中,可以看到该线段的长度以及角度。在影像上点击并拖动鼠标,绘制一条直线段。工具,选择要重采样的影像后点击ok。,避免了插值过程中光谱信息的改变。:最近邻插值法通过选择原始影像中。在ENVI中打开影像后右键选择。指示了每个像素的地理跨度(聚合为一个新像素,通常通过。方法一:查看影像的元数据。

weixin_41619112的博客 5571

第二篇java核心技术 复习博客

所谓类的封装是指在定义一个类时,将类中的属性私有化,及使用privte关键字来修饰,私有属性只能在他所在类中被访问,如果外界想要访问私有属性,需要提供一些使用public修饰公有方法,其中包括用于获取属性的getXxx方法和设置属性的setXxx方法。需要注意的是在子类中重写方法需要和父类被重写的方法有相同的方法名。例如有一个汽车的类,该类中描述了汽车的普通特性和功能,而轿车的类中不经可以包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加了轿车的特性就可以了。

2301_76545524的博客 149

开源DIY龙门架:从零构建可编程运动控制平台

运动控制是自动化与机器人技术的核心基础,它通过精确指令驱动执行机构,实现物体的定位与轨迹规划。其原理通常涉及控制器、驱动器、电机与传动机构的协同工作,核心价值在于将数字指令转化为精准的物理运动,从而解放人力并提升作业一致性。在工业自动化、桌面制造(如3D打印、激光雕刻)及教育机器人等领域应用广泛。本文聚焦于一个具体的工程实践案例:使用**铝型材**、**3D打印**零件、Arduino控制器及步进电机,从机械结构设计、电路连接到代码编写,手把手教你打造一个模块化、可扩展的开源龙门架系统。该系统不仅成本可控,

weixin_33168937的博客 616

第四次工业革命如何重构产业逻辑:写给技术人的趋势推演

第四次工业革命正在以人工智能、大数据和新能源为核心重构全球产业逻辑。本文从历史规律切入,指出技术革命本质是生产力跃迁和产业链话语权的转移。当前AI基础设施竞赛已形成算力、数据、算法三大支柱,其中算力投资首超石油领域,绿色算力与新型架构成为关键。数据治理带来隐私计算等新技术约束,数据中心正向液冷技术和"东数西算"模式演进。技术人需构建三大竞争力:夯实分布式系统等底层能力、培养跨领域知识融合能力、善用约束条件驱动创新。这场变革将奖励那些深度理解技术本质并能快速适应的实践者。

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 288

Java对象与Java类

文章目录1.面向对象是什么?2.Java类1.什么是类2.Java类类的结构Java类的格式3.java对象4.类和对象5.类中的变量,方法1.变量分类2.方法分类6.方法重载7.对象与引用基本类型和引用类型的区别:值传递与引用传递8.static关键字概念static属性static方法代码块9.类的加载执行10.包包的概念:包的作用:包(package)的命名规范:访问权限修饰符11.面向对象语言的三大特征1.封装2.多态3.继承12.类于类之间的关系1.关联关系(has-a)2.依赖关系(uses-a

KOOKNUT的博客 4555

Java中的类与对象

文章目录一、面向过程与面向对象的理解二、类与对象的理解与认识三、类的成员1.字段/属性/成员变量2.对null的基本认识3.方法 (method)4.static 关键字四、封装1. private实现封装2.getter和setter方法五、构造方法2.this关键字六、Java中的代码块1.认识代码块2.普通代码块3.构造代码块4.静态代码块七、toString方法2.匿名对象八、交换两个数的值(实参交换) 一、面向过程与面向对象的理解 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数

ZJRUIII的博客 3407

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【Java】类与对象

类是java程序的基本要素,一个java应用程序就是由若干类构成的。类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。在java中定义类时,需要用到class关键字,具体格式如下:class 类名{类体的内容//变量声明//变量声明//变量声明float area;//变量声明float compterArea(){ //定义方法void setHeight(float h){ //定义方法。

Zmmm_11的博客 2163

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java---类与对象

上节我们介绍了数组的详细操作,这期内容我为大家带来类与对象的讲解。这节可以让读者朋友们深入了解Java面向对象的本质,让大家来了解Java中的类一些重要操作

2401_87022967的博客 1753

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java类与对象 学习笔记

类与对象 面向对象(Object Oriented) 一、面向对象 三大特性: 封装性:对象的成员属性和行为看做一个不可分割的整体,一些不想让外界看到的方法也隐藏起来 继承性:java是类的单继承,接口的多继承,是从一个基础的类上派生出反应一些特殊性的类,如几何类下面可以包括圆类,正方体类等 多态性:多态是指程序中允许出现重名现象。 方法重载:根据函数参数的不同,允许同名函数完成不同的工作 对...

yaologos的博客 409

Java——类与对象

Java是一门纯面向对象的语言,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。1.2 面向对象与面向过程常说C语言是面向过程,Java是面向对象。那什么是面向对象,什么是面向过程呢?简单举个例子,现在我要将一个大象装入冰箱里。如何思考这个问题那么大部分情况下,首先想到的就是,怎么打开冰箱门,怎么装进去,怎么又关上冰箱门。

2303_80472275的博客 1039

Java 类与对象

类是对一类事物的抽象描述,是一个“模板”或“蓝图”,定义了这类事物的属性(状态)和方法(行为)。例如:“汽车”是一个类,它的属性包括“颜色、品牌、排量”,方法包括“启动、加速、刹车”。类不占用内存,它只是一种逻辑上的定义。对象是类的具体实例,是真实存在的个体,基于类的模板创建,具有类定义的属性和方法。例如:“我家那辆黑色的特斯拉Model 3”是“汽车”类的一个对象,它的属性有具体值(颜色=黑色,品牌=特斯拉,排量=纯电),可以执行启动、加速等行为。对象占用内存,每个对象都是独立的。类通过。

2501_91241024的博客 1387

Java类与对象总结

《Java面向对象编程核心概念解析》 摘要:本文系统介绍了Java面向对象编程中的核心概念。首先阐述了类与对象的区别,类作为抽象模板而对象是具体实例。详细讲解了类的定义语法、成员变量与局部变量的差异,以及实例化过程。重点剖析了this引用的原理和使用场景,解释了对象构造方法和初始化机制。此外,还涵盖了封装特性、访问权限控制、包管理、static关键字的作用,以及各种代码块(普通、构造、静态)的执行顺序和初始化应用。最后介绍了对象打印的toString方法重写技巧。全文通过饮水机等生活案例,生动呈现了面向对象

zcy278854的博客 906

JAVA类与对象

Java语言中的类与对象是面向对象编程(OOP)的核心概念。类是一种模板或蓝图,它定义了对象的属性和行为。通过类,我们可以指定对象应该拥有哪些数据成员(属性)以及可以对这些数据执行哪些操作(方法)。对象则是根据类创建的具体实例,它封装了类的数据和方法,并且每个对象都是类的一个独立实体,拥有自己的数据状态和行为方式。简而言之,类为对象提供了构造蓝图,而对象则是类在内存中的具体表现,它们共同构成了Java程序中数据结构和功能的基石。

2403_87559831的博客 1684

四、类与对象

这是面向对象编程的核心原则之一,指的是将数据(属性)和操作这些数据的方法捆绑在一起形成一个独立的单元(类)。对象的行为通过类中的方法来体现,那么行为的多态性就是方法的重载。一个类可以把某个对象当作自己的一个成员变量,如果用这样的类创建对象,那么该对象中就会有其他对象,也就是说该类的对象将其他对象作为自己的组成部分,就是耦合关系。是 Java 提供的一种机制,用于扩展 JRE 的功能,使得开发者可以将额外的库(类和资源)集成到 JRE 中,以便在任何运行 Java 程序时自动可用。引用变量保存的是对象的。

weixin_45768538的博客 885

java的类与对象

Java的类与对象的认识

2403_88874650的博客 2106

【Java学习笔记】类与对象

【Java学习笔记】类与对象

在csdn分享更多技术知识,相互交流 1105
上一篇: Java学习笔记(三)数据类型
下一篇: Java学习笔记(五)垃圾强制回收
mengrennwpu
博客等级 码龄15年 262粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

mengrennwpu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值