类和对象(java 精简版)

发布时间:2026/9/3 8:16:43

类和对象(java 精简版)
1.类的定义格式在java中定义类时需要用到class关键字//创建类 class ClassName{ filed; //子段属性或者 成员变量 method; //行为 或者 成员方法 }2.成员变量和成员方法class Student{ //成员变量 public String name; public int age; //普通成员方法 public void shouinfo(){ System.out.println(姓名 name 年龄 age); }成员变量没初始化时会有一个默认值引用类型为null , 基本数据类型为对应的0值而局部变量在使用的时候要进行初始化。3.类的实例化public class Main(){ public static void main(String[] args) { Student student new Student();//通过new实例化对象 student.name lihua; student.age 18; student.shouinfo(); } }4.this 引用4.1名字冲突区分变量public Data(int year, int month, int day) { this.year year; this.month month; this.day day; }4.2this 引用的特性哪个对象的引用调用了该方法this 就代表哪个对象this 其实是成员方法隐藏的第一个参数public void steDate(Date this, int year, int month, int day)只能在成员方法中使用调用本类变量和方法时 this.变量 this.方法构造方法中通过this 调用其他构造方法 this构造方法5.构造方法public class Student { public String name; public int age; public long id; public Student() { //无参数构造方法 System.out.println(无参数); } public Student(String name, int age, int id) { this.name name; this.age age; this.id id; //有参数的构造方法 System.out.println(有参数); } public static void main(String[] args) { Student student1new Student(); Student student2new Student(lihua,19,20250610); } }名字必须与类名相同没有返回值类型设置为void也不行作用初始化对象当中的成员可发生重载比如无参数构造方法和有参数的构造方法当没有任何构造方法的时候java会提供一个默认的无参的构造方法一旦写了其他的构造方法就不会自动提供无参的构造方法了6.封装6.1概念封装是面向对象编程的三大核心特性之一另外两个是继承和多态封装将数据和操作数据的方法进行有机结合隐藏对象的属性和实现细节仅对外公开接口来和对象交互。简单来说就是对成员变量或成员方法使用private进行修饰达到效果成员变量或成员方法只能 在当前类中使用不能在类外使用6.2访问权限限定符在Java中通过使用访问权限限定符来实现封装。它们用于控制类、变量、方法和构造器的可见性范围。Java提供了四种访问级别从最严格到最宽松依次为访问范围privatedefault(包访问权限)protectedpublic同一类中✓✓✓✓同一包中不同类✓✓✓不同包的子类✓✓不同包的非子类✓7.包7.1概念把多个类收集在一起组为一组称为软件包本质就是文件夹分门别类管理类解决类名重名冲突7.2自定义包//假设创建如下的包 pakage com.bit.demo1对应磁盘文件夹 com/bit/demo1域名倒写是行业惯例7.3导入类import7.3.1普通导入//java.util是java提供的工具程序包 import java.util.Scanner; //导入单个类util里的Scanner import java.util.*; //导入包下所有类7.3.2静态导入import static java.lang.Math.PI; import static java.lang.Math.*;7.3.3区别普通 import 导入整个类静态成员在类里面要使用 ”类名.静态变量/静态方法“ 的格式import java.lang.Math; public class test { public static void main(String[] args) { //普通导入使用 类名.静态变量/静态方法 double numMath.random(); System.out.println(num); } }静态 import 只能抽走静态成员目的就是省略类名直接裸名调用import static java.lang.Math.*; public class test { public static void main(String[] args) { double x 30; double y 40; double result1 Math.sqrt(Math.pow(x, 2) Math.pow(y, 2)); //静态导入 可以省略类名 Math double result2 sqrt(pow(x, 2) pow(y, 2)); System.out.println(result1); System.out.println(result2); } }8.static 关键字8.1static修饰成员变量static修饰的成员变量称为静态变量。这个变量是属于类的不是对象的对象或类名都可以访问但建议通过类名来访问public class Student1 { public String name; public int age; public String gender; public double score; public static String classroom A123; public Student1(String name, int age, String gender, double score) { this.name name; this.age age; this.gender gender; this.score score; } public static void main(String[] args) { //可直接通过类名访问 System.out.println(Student1.classroom); Student1 s1 new Student1(lihua,18,women,88.1); Student1 s2 new Student1(xiaoming,19,man,87.3); //也可以通过对象访问但是不建议 System.out.println(s1.classroom); System.out.println(s2.classroom); } }8.2static修饰成员方法在静态方法中不能够直接调用非静态方法可以new一个因为静态方法不依赖于对象可以直接通过类名访问但是非静态方法依赖对象需要通过对象的引用访问非静态方法中可以调用静态方法9.代码块使用 { } 定义的一段代码叫做代码块。根据代码块定义的位置可以分为一下四种普通代码块构造块静态块同步代码块本节不讨论9.1普通代码块定义在方法中的代码块public class Main{ public static void main(String[] args) { //直接用 {} 定义普通方法块 { int x1 10; System.out.println(x1 x1); } int x2 100; System.out.println(x2 x2); } }这种方法比较少见9.2构造代码块定义在类中的代码块不加修饰符也叫实例代码块构造代码块一般用于初始化成员变量。public class Student2 { private String name; private int age; private String gender; private double score; private static String classroom; //实例代码块 { this.name xiaoming; this.age 18; this.gender men; this.score 91; } public void show() { System.out.println(name age gender score); } public static void main(String[] args) { Student2 s1 new Student2(); s1.show(); } }9.3静态代码块使用static定义的代码块称为静态代码块一般用于初始化静态成员变量。static { classroom B123; System.out.println(static); }

相关新闻

基于Leaflet.js的Web地图可视化实战:从坐标解析到交互式呈现

基于Leaflet.js的Web地图可视化实战:从坐标解析到交互式呈现

2026/9/3 8:16:43

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

QT5实战入门:DS小龙哥能跑起来的上位机开发教程

QT5实战入门:DS小龙哥能跑起来的上位机开发教程

2026/9/3 8:06:43

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

PYNQ-Z2上CNN硬件加速实战:从MNIST到FPGA部署

PYNQ-Z2上CNN硬件加速实战:从MNIST到FPGA部署

2026/9/3 8:06:43

简介:这是一份面向FPGA初学者与嵌入式AI学习者的CNN硬件加速器入门级实践资源,聚焦手写数字识别任务,基于Xilinx PYNQ-Z2开发板实现卷积神经网络的端到端硬件加速设计。资源涵盖从数据预处理、模型量化、Verilog硬件模块(含卷积、…

Python+PyQt5调用百度植物识别API的毕业设计工程实践

Python+PyQt5调用百度植物识别API的毕业设计工程实践

2026/9/3 9:06:45

简介:本资源是一套完整的基于Python的植物识别桌面应用毕业设计项目,面向计算机或人工智能方向本科生,解决图像识别类课程设计与毕设中GUI开发、API集成与AI服务调用的实际需求。压缩包共16个文件,含2个核心Python源码&#xff08…

MATLAB实现相移法偏移估计:从原理到代码实战

MATLAB实现相移法偏移估计:从原理到代码实战

2026/9/3 9:06:45

简介:本资源是一套面向地球物理勘探专业师生及科研人员的相移法偏移MATLAB实现代码,聚焦地震数据处理中的倾斜界面校正问题,适用于地震成像、速度建模与偏移算法教学实践。压缩包共5个文件,含3个核心.m函数(实现预处理…

ROS2多线激光雷达仿真骨架:Ubuntu22.04+Humble+Fortress全栈验证

ROS2多线激光雷达仿真骨架:Ubuntu22.04+Humble+Fortress全栈验证

2026/9/3 9:06:45

简介:本资源是一个面向ROS2初学者与机器人仿真开发者的Gazebo多线激光雷达仿真工程,基于ROS 2 Humble和Ubuntu 22.04平台构建,聚焦于机器人感知模块的快速验证与算法调试,特别适用于SLAM建图、定位导航及传感器融合等场景。压缩包…

AI 为何无法绕过 Claude Code Harness 的护栏?执行前裁决机制设计哲学

AI 为何无法绕过 Claude Code Harness 的护栏?执行前裁决机制设计哲学

2026/9/3 9:06:45

AI 为何无法绕过 Claude Code Harness 的护栏?执行前裁决机制设计哲学 【免费下载链接】claude-code-harness Claude Code Dedicated Development Harness - Achieving High-Quality Development Through an Autonomous Plan→Work→Review Cycle 项目地址: https…

SkillOpt 训练循环6大核心阶段图解:Rollout、Reflect、Aggregate、Select、Update、Gate

SkillOpt 训练循环6大核心阶段图解:Rollout、Reflect、Aggregate、Select、Update、Gate

2026/9/3 9:06:45

SkillOpt 训练循环6大核心阶段图解:Rollout、Reflect、Aggregate、Select、Update、Gate 【免费下载链接】SkillOpt SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, va…

电竞复盘分析技术实现:从语音转写到数据可视化的完整工具链

电竞复盘分析技术实现:从语音转写到数据可视化的完整工具链

2026/9/3 8:56:45

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

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/2 10:08:07

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/2 12:11:52

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/9/1 23:49:08

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

【原创】基于微信小程序+AI大模型+uni-app的宠物用品商城小程序(设计与实现)

【原创】基于微信小程序+AI大模型+uni-app的宠物用品商城小程序(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

【原创】基于AI大模型+SpringBoot+Vue的宠物用品商城(设计与实现)

【原创】基于AI大模型+SpringBoot+Vue的宠物用品商城(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

【原创】基于微信小程序+AI大模型+uni-app的节日礼品定制商城小程序(设计与实现)

【原创】基于微信小程序+AI大模型+uni-app的节日礼品定制商城小程序(设计与实现)

2026/9/3 0:06:18

摘要:随着电子商务与本地生活服务的普及,线上交易与店铺运营管理已成为常规业态。传统分散式进销存与人工对账方式存在流程割裂、库存难同步、促销规则难落地、经营数据难沉淀等弊端,难以支撑一体化的数字化运营。同类课题亦多见多商户在线商…

远程协作的工作台整理

远程协作的工作台整理

2026/9/3 6:56:24

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/3 6:39:45

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/3 5:20:28

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…