当前位置: 首页 > news >正文

Java面向对象学习笔记-1

前言

“Java 学习笔记” 是为初学者和希望加深对Java编程语言的理解的人们编写的。Java是一门广泛应用于软件开发领域的强大编程语言,它的语法和概念对于初学者来说可能有些复杂。这份学习笔记的目的是帮助读者逐步学习Java的基本概念,并提供了一系列示例代码,以便更好地理解这些概念。无论您是想成为一名Java开发者,还是只是对编程感兴趣,这份学习笔记都将为您提供有价值的信息和指导。

摘要

Dog 类

package cn.qq.xiangmu.entity;public class Dog {private String name;private int health;private int love;private String strain;// 个人建议,没有什么特殊要求时,提供无参和满参构造函数即可// 默认系统会提供一个无参的公有的没有什么内容的构造函数public Dog() {//this("匿名", 50, 50, "土狗"); // 构造函数的调用,必须在函数体的第一行。不允许递归死循环调用。实际开发很少使用!}// 如果自定义了有参构造函数,系统就不再提供无参构造函数public Dog(String name, int health, int love, String strain) {//this(); // 构造函数的调用,必须在函数体的第一行。不允许递归死循环调用。实际开发很少使用!this.name = name;this.health = health;this.love = love;this.strain = strain;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getHealth() {return health;}public void setHealth(int health) {if (health < 0) health = 0;if (health > 100) health = 100;this.health = health;}public int getLove() {return love;}public void setLove(int love) {this.love = love;}public String getStrain() {return strain;}public void setStrain(String strain) {this.strain = strain;}public void print() {System.out.println("宠物的自白");System.out.println("我的名字叫"+name+",健康值是"+health+",和主人的亲密度是"+love+",我是一只"+strain);}
}
  • Dog 类表示一只狗,包括名称、健康值、亲密度和品种等属性。
  • 通过构造函数,可以初始化这些属性。
  • 提供了 getter 和 setter 方法,以便访问和修改这些属性。
  • print 方法用于打印狗的信息。

Penguin 类

package cn.qq.xiangmu.entity;public class Penguin {// 常量的定义 可以参考 Integer.MAX_VALUEpublic static final String SEX_MALE = "Q仔";public static final String SEX_FEMALE = "Q妹";private String name;private int health;private int love;private String sex;public Penguin() {}public Penguin(String name, int health, int love, String sex) {this.name = name;this.health = health;this.love = love;this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getHealth() {return health;}public void setHealth(int health) {if (health < 0) health = 0;if (health > 100) health = 100;this.health = health;}public int getLove() {return love;}public void setLove(int love) {this.love = love;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public void print() {System.out.println("宠物的自白");System.out.println("我的名字叫"+name+",健康值是"+health+",和主人的亲密度是"+love+",性别是"+sex);}
}
  • Penguin 类表示一只企鹅,包括名称、健康值、亲密度和性别等属性。
  • 通过构造函数,可以初始化这些属性。
  • 提供了 getter 和 setter 方法,以便访问和修改这些属性。
  • print 方法用于打印企鹅的信息。
  • 类中定义了常量字段 SEX_MALESEX_FEMALE 用于表示企鹅的性别。

Xxx 类

package cn.qq.xiangmu.entity;public class Xxx {public int a1 = 1;public static int a2 = 2;public Xxx() {System.out.println("Xxx()构造函数");}public Xxx(int a1) {System.out.println("Xxx(int)构造函数");this.a1 = a1;}public void f1() {System.out.println("f1(): " + this.a1 + Xxx.a2);Xxx.f2();}public static void f2() {System.out.println("f2(): " + Xxx.a2);}
}
  • Xxx 类包含了一个实例变量 a1 和一个静态变量 a2
  • 通过构造函数,可以创建 Xxx 类的实例并初始化实例变量。
  • f1 方法是实例方法,用于打印实例变量 a1 和静态变量 a2 的值。
  • f2 方法是静态方法,用于打印静态变量 a2 的值。

Yyy 类

package cn.qq.xiangmu.entity;public class Yyy {int a1;public static int a2;public Yyy() {a1 = 10;}{// 代码块 构造了n次对象前,默认就会自动调用n次a1++;}static {// 静态代码块 该类有访问就唯一调用一次a2++;}public void f1() {System.out.println(a1);}
}
  • Yyy 类包含了一个实例变量 a1 和一个静态变量 a2
  • 构造函数初始化实例变量 a1
  • 类中包括实例初始化块,这些块在创建对象之前自动执行。
  • 类还包括静态初始化块,这些块在类加载时执行,仅执行一次。
  • f1 方法用于打印实例变量 a1 的值。

Demo01 类

package cn.qq.xiangmu.test;import cn.qq.xiangmu.entity.*;public class Demo01 {public static void main(String[] args) {Dog dog = new Dog("欧欧", 100, 0, "德国牧羊犬");System.out.println(Penguin.SEX_FEMALE);Penguin penguin = new Penguin("美美", 90, 10, Penguin.SEX_FEMALE);dog.print();penguin.print();}
}
  • 包含一个 main 方法,演示了如何使用 DogPenguin 类创建实例并打印它们的信息。

Demo02 类

package cn.qq.xiangmu.test;import cn.qq.xiangmu.entity.Xxx;public class Demo02 {public static void main(String[] args) {Xxx xxx1 = new Xxx(1111);Xxx xxx2 = new Xxx(11111);System.out.println(xxx1.a1);System.out.println(xxx2.a1);xxx1.f1();xxx2.f1();Xxx.a2 = 22;Xxx.f2();}
}
  • 包含一个 main 方法,演示了如何使用 Xxx 类创建实例、调用方法以及修改静态变量。

Demo03 类

package cn.qq.xiangmu.test;import cn.qq.xiangmu.entity.Yyy;public class Demo03 {public static void main(String[] args) {System.out.println(Yyy.a2);System.out.println(Yyy.a2);}
}
  • 包含一个 main 方法,演示了如何使用 Yyy 类访问其静态变量 a2

总结

在这份学习笔记中,我们深入研究了Java编程语言的关键概念。我们了解了如何创建类、初始化实例变量和静态变量、定义方法以及使用构造函数。通过示例类和测试类,我们演示了如何将这些概念应用于实际编程情境,并加深了对Java面向对象编程的理解。我们鼓励读者不仅仅是阅读示例代码,而是积极地亲自动手练习,以巩固所学知识。

相关文章:

Java面向对象学习笔记-1

前言 “Java 学习笔记” 是为初学者和希望加深对Java编程语言的理解的人们编写的。Java是一门广泛应用于软件开发领域的强大编程语言&#xff0c;它的语法和概念对于初学者来说可能有些复杂。这份学习笔记的目的是帮助读者逐步学习Java的基本概念&#xff0c;并提供了一系列示…...

el-table根据data动态生成列和行

css //el-table-column加上fixed后会导致悬浮样式丢失&#xff0c;用下面方法可以避免 .el-table__body .el-table__row.hover-row td{background-color: #083a78 !important; } .el-table tbody tr:hover>td {background: #171F34 !important; }html <el-table ref&quo…...

【c++】如何有效地利用命名空间?

​ &#x1f331;博客主页&#xff1a;青竹雾色间 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 ​✨人生如寄&#xff0c;多忧何为 ✨ 目录 前言什么是命名空间&#xff1f;命名空间的语法命名空间的使用避免命名冲突命名空间的嵌套总结 前言 当谈到C编…...

Go语言传参

为了让新手尽快熟悉go的使用,特记录此文,不必谢我,转载请注明! Go 语言中参数传递的各种效果,主要内容包括: 传值效果指针传递结构体传递map 传递channel 传递切片传递错误传递传递效果示例传递方式选择原文连接:https://mp.weixin.qq.com/s?__biz=MzA5Mzk4Njk1OA==&…...

SAP PI 配置SSL链接接口报错问题处理Peer certificate rejected by ChainVerifier

出现这种情况一般无非是没有正确导入证书或者证书过期的情况 第一种&#xff0c;如果没有导入证书的话&#xff0c;需要在NWA中的证书与验证-》CAs中导入管理员提供的证书&#xff0c;这里需要注意的是&#xff0c;需要导入完整的证书链。 第二种如果是证书过期的&#xff0c…...

【MyBatisⅡ】动态 SQL

目录 &#x1f392;1 if 标签 &#x1fad6;2 trim 标签 &#x1f460;3 where 标签 &#x1f9ba;4 set 标签 &#x1f3a8;5 foreach 标签 动态 sql 是Mybatis的强⼤特性之⼀&#xff0c;能够完成不同条件下不同的 sql 拼接。 在 xml 里面写判断条件。 动态SQL 在数据库里…...

音视频入门基础理论知识

文章目录 前言一、视频1、视频的概念2、常见的视频格式3、视频帧4、帧率5、色彩空间6、采用 YUV 的优势7、RGB 和 YUV 的换算 二、音频1、音频的概念2、采样率和采样位数①、采样率②、采样位数 3、音频编码4、声道数5、码率6、音频格式 三、编码1、为什么要编码2、视频编码①、…...

Pytorch中如何加载数据、Tensorboard、Transforms的使用

一、Pytorch中如何加载数据 在Pytorch中涉及到如何读取数据&#xff0c;主要是两个类一个类是Dataset、Dataloader Dataset 提供一种方式获取数据&#xff0c;及其对应的label。主要包含以下两个功能&#xff1a; 如何获取每一个数据以及label 告诉我们总共有多少的数据 Datal…...

python如何使用打开文件对话框选择文件?

python如何使用打开文件对话框选择文件&#xff1f; ━━━━━━━━━━━━━━━━━━━━━━ 在Python中&#xff0c;可以使用Tkinter库中的filedialog子模块来打开一个文件对话框以供用户选择文件。以下是一个简单的例子&#xff0c;演示如何使用tkinter.filedialog打…...

虚拟化和容器

文章目录 1 介绍1.1 简介1.2 虚拟化工作原理1.3 两大核心组件&#xff1a;QEMU、KVMQEMUKVM 1.4 发展历史1.5 虚拟化类型1.6 云计算与虚拟化1.7 HypervisorHypervisor分为两大类 1.8 虚拟化 VS 容器 2 虚拟化应用dockerdocker 与虚拟机的区别 K8Swine 参考 1 介绍 1.1 简介 虚…...

LeetCode-78-子集

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 题目链接&#xff1a;LeetCode-78-子集 解题思路&#xff1a;递归回溯 题…...

js对象转json文件

目录 需求1.首先寻找类似需求的数据2.对数据进行转换3.将转换后的数据转为json文件4.完整代码 需求 需求&#xff1a;在做项目时&#xff0c;遇到了需要制作地址列表的功能&#xff0c;这一般都会用到一些开源的组件库&#xff0c;但是有个问题是不同组件库之间的城市列表数据结…...

【免费模板】2023数学建模国赛word+latex模板免费分享

无需转发 免费获取2023国赛模板&#xff0c;获取方式见文末 模板文件预览如下&#xff1a; 模板参考格式如下&#xff1a; &#xff08;题目&#xff09;XXXXXX 摘 要&#xff1a; 开头段&#xff1a;需要充分概括论文内容&#xff0c;一般两到三句话即可&#xff0c;长度控…...

基于HBuilder X平台下的 驾校报名考试管理系统 uniapp 微信小程序3n9o5

本课题研究的是基于HBuilder X系统平台下的驾校管理系统&#xff0c;开发这款驾校管理系统主要是为了帮助学员可以不用约束时间与地点进行查看教练信息、考场信息等内容。本文详细讲述了驾校管理系统的界面设计及使用&#xff0c;主要包括界面的实现、控件的使用、界面的布局和…...

电商3D资产优化管线的自动化

如果你曾经尝试将从 CAD 程序导出的 3D 模型上传到 WebGL 或 AR 服务&#xff0c;那么可能会遇到最大文件大小、永无休止的进度条和糟糕的帧速率等问题。 为了创作良好的在线交互体验&#xff0c;优化 3D 数据的大小和性能至关重要。 这也有利于你的盈利&#xff0c;因为较小的…...

Android 大图显示优化方案-加载Gif 自定义解码器

基于Glide做了图片显示的优化&#xff0c;尤其是加载Gif图的优化&#xff0c;原生Glide加载Gif图性能较低。在原生基础上做了自定义解码器的优化&#xff0c;提升Glide性能 Glide加载大图和Gif 尤其是列表存在gif时&#xff0c;会有明显卡顿&#xff0c;cpu和内存占用较高&…...

Leetcode.664 奇怪的打印机

题目链接 Leetcode.664 奇怪的打印机 hard 题目描述 有台奇怪的打印机有以下两个特殊要求&#xff1a; 打印机每次只能打印由 同一个字符 组成的序列。每次可以在从起始到结束的任意位置打印新字符&#xff0c;并且会覆盖掉原来已有的字符。 给你一个字符串 s &#xff0c;你…...

正中优配:散户怎么实现T+0?散户在股市上怎么变相T+0?

T0是指当天买入的标的物&#xff0c;在当天就能卖出的买卖方式&#xff0c;其中&#xff0c;在a股市场上&#xff0c;散户能够通过一些办法直接地完成T0买卖方式&#xff0c;接下来&#xff0c;正中优配为大家预备了相关内容&#xff0c;以供参阅。 散户在股票市场上&#xff0…...

ZooInspector

一、在window&#xff0c;使用我们先打开Zookeeper,目录bin下的zkServer.cmd&#xff0c;把Zookeeper运行起来 ​编辑https://img.111com.net/attachment/art/187687/5f0c25fbe580c.png 二、可以使用目录bin下的zkCli.cmd&#xff0c;查询Zookeeper数据的方式&#xff0c;但是…...

2023高教社杯 国赛数学建模B题思路 - 多波束测线问题

1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到信…...

【vue】二、vue2仿去哪儿网app——首页开发实战:从零搭建到性能优化

1. 项目初始化与页面结构设计 开始一个Vue2仿去哪儿网App首页项目&#xff0c;首先要搭建基础框架。我习惯用vue-cli脚手架快速初始化项目&#xff0c;这个工具能帮我们处理好webpack配置、基础目录结构等繁琐工作。执行vue init webpack qunar-app命令后&#xff0c;会生成标…...

猫抓插件深度解析:浏览器资源嗅探的终极实战指南

猫抓插件深度解析&#xff1a;浏览器资源嗅探的终极实战指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓插件是一款功能强大的开源浏览器扩…...

Qwen3-14B部署避坑指南:从环境配置到服务上线的完整流程

Qwen3-14B部署避坑指南&#xff1a;从环境配置到服务上线的完整流程 1. 环境准备与系统要求 在开始部署Qwen3-14B之前&#xff0c;确保你的硬件和软件环境满足以下要求&#xff1a; 1.1 硬件配置建议 组件最低配置推荐配置GPUNVIDIA T4 (16GB)NVIDIA A10G (24GB)或A100 (40…...

激光+视觉+IMU+RTK融合实战:如何用多传感器打造厘米级三维重建系统?

激光视觉IMURTK融合实战&#xff1a;如何用多传感器打造厘米级三维重建系统&#xff1f; 在自动驾驶和机器人领域&#xff0c;三维重建技术正经历着从实验室走向工业落地的关键转折。传统单一传感器方案已无法满足复杂场景下的精度需求&#xff0c;而多传感器融合正成为突破性能…...

QGIS插件开发避坑指南:我的第一个批量属性修改工具是怎么炼成的

QGIS插件开发避坑指南&#xff1a;我的第一个批量属性修改工具是怎么炼成的 第一次打开QGIS的Python控制台时&#xff0c;我完全没意识到自己即将踏入一个充满"惊喜"的世界。作为一名有Python基础但缺乏Qt框架经验的开发者&#xff0c;本以为凭借官方文档就能轻松实现…...

Java八股文面试题,堪称2026最强!!!

1、什么是 java 序列化&#xff0c;如何实现 java 序列化 难度系数&#xff1a;⭐ 序列化是一种用来处理对象流的机制&#xff0c;所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作&#xff0c;也可将流化后的对象传输于网络之间。序列化是为了解决在…...

行波管TWT聚焦系统硬核拆解:PPM vs PCM 核心区别、原理对比与工程选型全指南

对于行波管&#xff08;TWT&#xff09;研发工程师、射频微波专业学生、雷达 / 通信系统硬件从业者而言&#xff0c;电子注聚焦系统是决定器件生死的核心模块—— 它直接决定了电子注的流通率、注波互作用效率&#xff0c;甚至是器件的长期可靠性。在永磁聚焦方案中&#xff0c…...

Kook Zimage 真实幻想 Typora文档集成方案

Kook Zimage 真实幻想 Typora文档集成方案 1. 引言 技术文档写作最头疼的是什么&#xff1f;文字描述得再生动&#xff0c;也不如一张直观的图片来得有说服力。传统的文档创作流程中&#xff0c;我们需要先在专门的AI绘图工具中生成图片&#xff0c;然后下载保存&#xff0c;…...

Ubuntu22.04微信依赖冲突的终极解决方案

1. 问题现象与原因分析 最近在Ubuntu 22.04上安装微信时&#xff0c;很多朋友都遇到了依赖冲突的问题。具体表现是当你尝试通过命令行安装微信时&#xff0c;系统会提示类似这样的错误信息&#xff1a; 下列软件包有未满足的依赖关系&#xff1a; libldap-2.4-2 : 依赖: libsas…...

HiOmics平台:零代码实现ChIP-Seq数据可视化与深度解析

1. 为什么科研人员需要零代码ChIP-Seq分析工具 做表观遗传学研究的朋友们应该都深有体会&#xff0c;ChIP-Seq数据分析就像一场马拉松——从原始数据清洗、序列比对、peak calling到功能注释&#xff0c;每个环节都需要不同的工具和脚本。我刚开始接触这个领域时&#xff0c;光…...