Java基础——预定义类/自定义类封装什么是Final类型

目录

预定义类——日历输出:

自定义类——在Java文件中:

什么是封装?

什么是final类型?

修饰变量:

修饰方法:

修饰类:


预定义类——日历输出:

例如:Math类、Date类、ArrayList类。 这些都是java经典的类,称为预定义类(预定义类是指由编程语言的标准库或第三方库已经定义好的类。)与之相对应的是用户自定义类

import java.time.DayOfWeek;
import java.time.LocalDate;public class CalendarTest {public static void main(String[] args) {LocalDate date=LocalDate.now();int month=date.getMonthValue();int today=date.getDayOfMonth();date=date.minusDays(today-1);DayOfWeek weekday=date.getDayOfWeek();int value=weekday.getValue();System.out.println("Mon Tue Wed Thu Fri Sat Sun");for(int i=1;i<value;i++) {System.out.print("        ");while(date.getMonthValue()==month) {System.out.printf("%3d",date.getDayOfMonth());if(date.getDayOfMonth()==today) {System.out.print("*");}else {System.out.print(" ");}date=date.plusDays(1);if(date.getDayOfWeek().getValue()==1) {System.out.println();}}if(date.getDayOfWeek().getValue()!=1) {System.out.println();}}}
}

效果图如下:

 

自定义类——在Java文件中:

一个class类文件中可以有多个类,但是只能有一个public类型的。如下示例(只有employee 是public class):

import java.time.LocalDate;//一个文件里可以有多个类,但是只能有一个类是public
public class EmployeeTest {public static void main(String[] args) {Employee[] staff=new Employee[3];staff[0] = new Employee("Carl Cracker", 75000, 1987, 12 , 15);staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);for(Employee e:staff) {e.raiseSalary(5);}for(Employee e:staff) {System.out.println("name="+e.getName()+",salary="+e.getSalary()+",hireDay="+e.getHireDay());}}
}class Employee{private String name;private double salary;private LocalDate hireDay;public Employee(String n,double s,int year,int month,int day) {name=n;salary=s;hireDay=LocalDate.of(year, month, day);}public String getName(){return name;}public double getSalary() {return salary;}public LocalDate getHireDay() {return hireDay;}public void raiseSalary(double byPercent) {double raise=salary*byPercent/100;salary += raise;}
}

什么是封装?

不需要知道他的底层逻辑,直接调用即可

域就是属性,属性就是域。

什么是final类型?

        在Java中,final是一个关键字,用于修饰类、方法和变量,表示它们是不可变的或不可被进一步修改的。以下是final关键字在不同情况下的具体用法和意义:

修饰变量
  • final修饰一个变量时,该变量成为常量,意味着一旦它被初始化之后,就不能再被重新赋值。
  • final变量必须在声明时或者在构造器中初始化(对于成员变量),而对于局部变量,则必须在声明时初始化。
public class Example {final int MAX_VALUE = 100; // 类变量,在声明时初始化public Example(int maxValue) {this.finalValue = maxValue; // 实例变量,在构造器中初始化}private final int finalValue;public void someMethod() {final int localValue = 50; // 局部变量,在声明时初始化}
}
修饰方法
  • final修饰一个方法时,该方法不能在子类中被重写(Override)。
public class Parent {public final void show() {System.out.println("This is a final method.");}
}public class Child extends Parent {// 下面的代码会导致编译错误,因为show方法是final的,不能被重写// @Override// public void show() {//     System.out.println("This would cause a compilation error.");// }
}
修饰类
  • final修饰一个类时,该类不能被继承。这通常用于安全原因或确保类的完整性。
public final class MyClass {// 类的内容
}// 下面的代码会导致编译错误,因为MyClass是final的,不能被继承
// public class AnotherClass extends MyClass {
//     // 类的内容
// }

注意!!final不修饰复杂的引用类型,无法阻止其属性变化。

但是public static final,允许只读。他俩常常配合使用——静态常量。static 修饰的被程序所有地方共享,可被直接调用很便捷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15699.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

spi 回环

///tx 极性0 &#xff08;sclk信号线空闲时为低电平&#xff09; /// 相位0 (在sclk信号线第一个跳变沿进行采样) timescale 1ns / 1ps//两个从机 8d01 8d02 module top(input clk ,input rst_n,input [7:0] addr ,input …

20241114软考架构-------软考案例16答案

每日打卡题案例16答案 16.【2017年真题】 难度&#xff1a;简单 阅读以下关于软件架构评估的叙述&#xff0c;在答题纸上回答问题1和问题2.(共25分) 【说明】 某单位为了建设健全的公路桥梁养护管理档案&#xff0c;拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设…

低成本出租屋5G CPE解决方案:ZX7981PG/ZX7981PM WIFI6千兆高速网络

刚搬进新租的房子&#xff0c;没有网络&#xff0c;开个热点&#xff1f;续航不太行。随身WIFI&#xff1f;大多是百兆级网络。找人拉宽带&#xff1f;太麻烦&#xff0c;退租的时候也不能带着走。5G CPE倒是个不错的选择&#xff0c;插入SIM卡就能直接连接5G网络&#xff0c;千…

Python学习小记3-传递任意数量的实参

1.形参名*toppings 中的星号让Python创建一个名为toppings 的空元组&#xff0c;不管调用语句提供了多少实参&#xff0c;这个形参会将它们统统收入囊中&#xff0c;即&#xff1a;无论几个小料 def make_pizza(size, *toppings):print(f"\n要制作一个{size}-inch的披萨&…

宝塔 docker 部署onlyoffice 服务

1.宝塔安装docker,直接下载安装就行 2.docker拉取onlyoffice镜像 docker pull onlyoffice/documentserver:5.3.1.26 5.4或更高的版本已经解决了连接数限制方法的Bug 3.创建容器 docker run -d --name onlyoffice --restartalways -p 暴露端口号:80 onlyoffice/documentserv…

【数据结构副本篇】顺序表 链表OJ

&#x1f3dd;️专栏&#xff1a;【数据结构实战篇】 &#x1f305;主页&#xff1a;f狐o狸x 学习其实和打游戏一样&#xff0c;当你觉得BOSS难打的时候就说明是你的等级和装备不够&#xff0c;此时就需要我们多去刷刷副本&#xff0c;增加一点经验&#xff0c;顺便爆点装备出…

论文笔记(五十六)VIPose: Real-time Visual-Inertial 6D Object Pose Tracking

VIPose: Real-time Visual-Inertial 6D Object Pose Tracking 文章概括摘要I. INTRODACTIONII. 相关工作III. APPROACHA. 姿态跟踪工作流程B. VIPose网络 文章概括 引用&#xff1a; inproceedings{ge2021vipose,title{Vipose: Real-time visual-inertial 6d object pose tra…

AI风向标|算力与通信的完美融合,SRM6690解锁端侧AI的智能密码

当前&#xff0c;5G技术已经成为推动数字经济和实体经济深度融合的关键驱动力&#xff0c;进入5G发展的下半场&#xff0c;5G与AI的融合正推动诸多行业的数字化转型和创新发展&#xff0c;终端侧AI和端云混合式AI将广泛应用于各类消费终端和各行各业。 在推动5G和AI与各行业场…

封装一个省市区的筛选组件

筛选功能&#xff1a;只能单选&#xff08;如需多选需要添加show-checkbox多选框属性&#xff09;&#xff0c;选中省传递省的ID&#xff0c;选中市传递省、市的ID&#xff0c; 选中区传递省市区的ID 父组件&#xff1a; <el-form-item><div style"width: 240px;…

Liunx:共享内存

共享内存是实现进程间通信的又一个策略。 与管道在逻辑上相似&#xff0c;用户可以向OS申请&#xff0c;在物理内存中开辟一块空间&#xff0c;OS开辟并向上层返回这块空间的起始地址。需要通信的双方将这块空间通过页表映射&#xff0c;各自的挂载到自己进程地址空间的共享区。…

STM32 创建一个工程文件(寄存器、标准库)

首先到官网下载对应型号的固件包&#xff1a; 像我的STM32F103C8T6的就下载这个&#xff1a; 依次打开&#xff1a; .\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm 可以看到&#xff1a; 这…

鸿蒙HarmonyOS 地图不显示解决方案

基于地图的开发准备已完成的情况下&#xff0c;地图还不显式的问题 首先要获取设备uuid 获取设备uuid 安装DevEco Studio的路径下 有集成好的hdc工具 E:\install_tools\DevEco Studio\sdk\default\openharmony\toolchains 这个路径下打开cmd运行 进入“设置 > 关于手机…

主机型入侵检测系统(HIDS)——Elkeid在Centos7的保姆级安装部署教程

一、HIDS简介 主机型入侵检测系统(Host-based Intrusion Detection System 简称:HIDS);HIDS作为主机的监视器和分析器,主要是专注于主机系统内部(监视系统全部或部分的动态的行为以及整个系统的状态)。 HIDS使用传统的C/S架构,只需要在监测端安装agent即可,且使用用户…

ArkUI---使用弹窗---@ohos.promptAction (弹窗)

promptAction.showToast&#xff08;文本提示框&#xff09; showToast(options: ShowToastOptions): void 创建并显示文本提示框&#xff0c;想看官方文档请点我 ShowToastOptions相关参数请点我 完整代码&#xff1a; import { promptAction } from kit.ArkUIEntry Componen…

leetcode104:二叉树的最大深度

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;root [1,null,2] 输出…

CSS 语法规范

基本语法结构 CSS 的基本语法结构包含 选择器 和 声明块,两者共同组成 规则集。规则集可以为 HTML 元素设置样式,使页面结构和样式实现分离,便于网页的美化和布局调整。 CSS 规则集的结构如下: selector {property: value; }选择器(Selector) 选择器用于指定需要应用…

使用 Python 脚本在 Ansys Mechanical 中创建用于后处理的螺栓工具

介绍 由螺栓连接定义的接头在工业应用中非常普遍。在 Ansys Mechanical FEA 中分析它们是一种非常常见的做法。通过Object Generator或Bolt Tools Add-on&#xff0c;使用线体、梁连接甚至3D实体中的梁单元&#xff0c;在Ansys Mechanical中生成螺栓连接非常容易。定义螺栓联接…

【Excel】数据透视表分析方法大全

数据透视表的最常用的功能是分类汇总&#xff0c;其实它还有很强大的数据分析功能。在数据透视表右键菜单的值显示方式中&#xff0c;可以看到有14个很实用的分析选项。 1、总计的百分比 作用&#xff1a;透视表中每一个数字&#xff08;包括汇总行、总计行&#xff09;占右…

电子工牌独立双通道定向拾音方案(有视频演示)

现在一些行业的客服人员在面对客户都要求使用电子工牌分别记录客服和顾客的声音,我们利用双麦克风阵列双波束拾音的方案设计了一个电子工牌方案.可以有效分别记录客服和顾客的声音. 方案思路: 我们采用了一个双麦阵列波束拾音的模块A-59,此模块可以利用2个麦克风组成阵列进行双…

Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了接口级的服务引入订阅的refreshInterfaceInvoker方法&#xff0c;当时还有最为关键的notify服务通知更新的部分源码没有学习&#xff0c;本次我们来学习notify通知本地服务更新的源码。 Dubb…