Java学习第五天
1、类的使用Java的面向对象1.1面向对象的基础概念面向过程面向过程指的是每次需要某个功能的时候都需要将功能重新编写一次。----早期的时候很多程序采用的都是面向过程这种方式会产生维护困难、需求不容易修改、功能扩展不方便等问题面向对象提前把特定的功能封装好放到类的方法中将来通过类的对象直接调用方法就可以完成方法的复用这种方法维护简单功能扩展比较容易但是消耗较高需要创建对象1.2面向对象核心知识点类、对象类类是对象的抽象对象对象是类的实例化1.3类和对象的语法类的写法类没有main方法即psvm1、类型2、属性3、方法publicclass 类名{//描述什么类型就写什么类名//属性数据类型 变量名属性名就是变量名数据类型 属性名数据类型 属性名//功能方法public 返回值类型 方法名{}public 返回值类型 方法名{}}package com.day3.text1; public class Computer { //属性 String brand; String color; double price; //功能方法 public void play() { System.out.println(电脑可以玩游戏); } public void code () { System.out.println(电脑可以写代码); } }对象的创建对象有main方法即psvm创建类的目的是为了编写一些方法将来可以多次调用方法执行特定的业务逻辑如果想调用类的方法就必须创建类的对象创建对象创建变量对象名就是变量名语法数据类型 对象名new 数据类型( );通过对象调用方法对象名.方法名通过对象调用属性对象名.属性名值 //赋值对象名.属性名 //获取值获取属性System.out.println(对象名.属性名);注意类的属性也称成员变量使用时即使没有赋值系统也会提供一个默认值可以使用引用类型包含String默认值是null整数类型默认值是0浮点数类型默认值是 0.0char 类型 默认值是 boolean 类型默认值是 falsepackage com.day3.text1; import com.day3.text1.Computer; public class ComputerText1{ public static void main(String[] args) { Computer computernew Computer();//Computer是一个引用数据类型 computer.play(); computer.code(); computer.brand华硕; computer.color黑色; computer.price7999; //获取属性也是通过对象.属性名获取 System.out.println(computer.price); System.out.println(computer.color); System.out.println(computer.brand); } }1.4类的混合使用例题单独创建包包中创建一个教师类有姓名、年龄、职称、课程类 四个属性类中有一个 show 方法输出的内容是 我是 一个老师我的姓名是: xx年龄是 xx职称是 xx我教授的课程名是 xx这门课有 xx 课时xx 学分package com.day3.text2; public class Teacher { String name; int age; String professional; Course c;//获取值 public void show(){ System.out.println(我是一个老师我的姓名是name,年龄是age ,职称是professional,我教授的课程名是 c.cname,这门课有c.time课时,c.score学分); } }package com.day3.text2; public class TeacherText1 { public static void main(String[] args) { Teacher tnew Teacher(); t.name李四; t.age24; t.professional高级教师; t.cnew Course();//将new Course()赋值给t.c(即在teacher中的Course c;)t.c是变量的命名 t.c.cname高数; t.c.time48; t.c.score3; t.show(); } }package com.day3.text2; public class Course { String cname; int time; int score; }重点代码理解在教师类包含课程类中课程作为属性所以需要在教师类中加入代码Course c;即数据类型 对象名并且在教师类方法里面关于课程的输出内容变成c.cname...注意不是t.c.cname在教师对象中属性是一个类的赋值方式, 需要创建一个对象赋值给属性t.cnew Course();//赋值给t.ct.c是变量的命名t.c.cname高数;t.c.time48;t.c.score3;1.5类在内存中的划分①编写的 .java 文件被编译为.class 文件 会被 JVM 加载到方法区②当执行Computer computer new Computer();的时候 会先在堆区创建空间同时把方法区的属性、方法引用加载到空间中把这个空间地址赋值给 栈区的computer③当我们执行后续的赋值操作computer.brand华硕;通过computer的引用地址倒找堆区的空间把空间中的属性去赋值④当我们调用方法computer.play(); 就会将方法加载到栈中按照先进后出的规则去存放⑤程序执行结束栈中的方法会按照先进后出的规则出栈结束运行堆中的对象则会被系统的垃圾回收器回收1.6成员变量和局部变量的区别①成员变量在类中方法外中声明局部变量在类中方法内中声明②成员变量使用不需要赋初始值系统会给默认值 局部变量必须要赋初始值才能使用③成员变量在堆中局部变量在栈中④成员变量随着对象的回收而消失局部变量随着方法的出栈而消失1.7构造方法重要构造方法的作用构造方法是和new关键字一起出现来创建类的对象使用的public class Person { String name; int age; //构造方法无参构造 public Person(){ } //有参构造 public Person(String name,int age){ } }特点①构造方法的方法名和类名完全相同没有返回值类型②如果类中没有编写构造方法那么系统会自动提供一个没有参数的构造方法有参数构造和无参数构造不能同时出现③构造方法可以写参数一般写上的参数参数名称一般和类的属性相同主要是为了完成创建对象的同时给属性赋值调用无参构造可用于赋值数据类型 对象名new 数据类型( );调用有参构造可用于赋值数据类型 对象名new 数据类型( 内容内容内容 );//第一种情况 Person personnew Person(); String name张三; int age12; //第二种情况 Person personnew Person(张三,12);

相关新闻

端侧推理:在设备本地运行轻量级AI模型(219)

端侧推理:在设备本地运行轻量级AI模型(219)

在鸿蒙(HarmonyOS)生态中,端侧推理是实现“原生智能”的核心基石。它允许将训练好的深度学习模型轻量化处理后,直接部署在手机、平板、穿戴等鸿蒙终端设备本地。所有数据预处理、模型推理及结果输出均在端侧完成,无需依…

2026/10/17 7:41:39 阅读更多 →
iOS视频编解码优化:WebRTC集成VideoToolbox实战

iOS视频编解码优化:WebRTC集成VideoToolbox实战

1. 项目背景与核心价值 在iOS平台上实现高效视频编解码一直是开发者面临的挑战。传统软件编解码方案虽然兼容性好,但CPU占用率高、功耗大,直接影响设备续航和用户体验。VideoToolbox作为苹果提供的底层框架,自iOS 8起开放了硬件编解码接口&am…

2026/10/16 17:43:41 阅读更多 →
PHP高效开发与安全优化的63个实战技巧

PHP高效开发与安全优化的63个实战技巧

1. PHP实战技巧概述作为一名从业十年的PHP开发者,我见过太多新手在项目开发中重复踩坑。PHP虽然入门简单,但要写出高效、安全的代码却需要长期经验积累。本文将分享我在实际项目中总结的63个核心技巧,涵盖性能优化、安全防护、代码规范等关键…

2026/10/17 23:48:18 阅读更多 →

最新新闻

Qt 解析 Gerber RS-274X:从 D 码到 PCB 预览器实战

Qt 解析 Gerber RS-274X:从 D 码到 PCB 预览器实战

简介:这份资源面向从事PCB制造与CAM开发的工程师及Qt C学习者,提供一套完整的Gerber文件解析与转换工具源码,解决将PCB设计数据转化为生产指令的实际问题。包内共381个文件,以147个svg图形资源、90个h头文件与86个cpp源文件为核心…

2026/10/18 23:42:37 阅读更多 →
三层交换机VLAN间路由配置实战:SVI与ip routing全解析

三层交换机VLAN间路由配置实战:SVI与ip routing全解析

做了无数次VLAN划分,发现不同VLAN之间就是不通,这几乎是每个网络初学者都会撞上的墙。以往靠单臂路由解决,但带宽和性能瓶颈明显。这次实验彻底换了个思路,用三层交换机直接实现VLAN间路由,配置下来发现事情比想象中简…

2026/10/18 23:42:37 阅读更多 →
三层交换机实现VLAN间路由配置详解

三层交换机实现VLAN间路由配置详解

做网络实验久了你会发现,真正难的不是某个命令怎么写,而是搞清楚"为什么需要这个命令"。VLAN间路由配置就是典型例子。很多初学者会困惑:VLAN不是已经把广播域隔离了吗,为什么还要路由?VLAN之间明明物理上连…

2026/10/18 23:42:37 阅读更多 →
EZCAD2二次开发核心:MarkEzd.dll与C#激光打标自动化

EZCAD2二次开发核心:MarkEzd.dll与C#激光打标自动化

简介:面向激光打标行业开发者与自动化集成工程师的二次开发资料包,围绕EZCAD激光打标软件展开,包含EZCAD2完整源代码、MarkEzd.dll动态链接库及配套测试工程,可用来深入理解从图形编辑、条码二维码生成、序列号自动递增到振镜控制…

2026/10/18 23:42:37 阅读更多 →
RS-485双向RDM通信实战:从物理层时序到协议帧构造

RS-485双向RDM通信实战:从物理层时序到协议帧构造

简介:本资源是一份面向嵌入式开发工程师与工业通信初学者的RS-485双向RDM通信实践代码包,聚焦解决多设备网络中主从识别、命令交互与可靠数据传输等核心问题,适用于智能照明、舞台设备控制、工业传感器组网等典型RDM应用场景。压缩包为ZIP格式…

2026/10/18 23:42:37 阅读更多 →
Qwen3.5 GGUF构建指南:从源码到可验证量化推理链

Qwen3.5 GGUF构建指南:从源码到可验证量化推理链

简介:本资源是一份面向AI开发者与本地大模型实践者的Qwen3.5系列GGUF模型下载与部署实操指南,聚焦解决模型获取路径混乱、下载速度慢、LM Studio加载报错等高频痛点。压缩包仅6KB,含3个核心文件:index.html为结构化操作文档&#…

2026/10/18 23:41:37 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →