Java代码组成部分
一、构造函数与默认构造函数
构造函数,是一种特殊方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
/**
* 矩形
*/
class Rectangle {/*** 构造函数*/public Rectangle(int length, int width) {this.length = length;this.width = width;}public static void main (String []args){//使用构造函数创建对象Rectangle rectangle = new Rectangle(10,5);}
}
特别的一个类可有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分构造函数的重载。
构造函数跟一般的实例方法相似;
与其它方法不同点:
- 构造器没有返回类型
- 不会被继承,且可以有范围修饰符
构造器的函数名称必须和它所属的类的名称相同。它承担着初始化对象数据成员的任务。
如果在编写一个可实例化的类时没有专门编写构造函数,多数编程语言会自动生成缺省构造器(默认构造函数)。
如果在编写一个可实例化的类时没有专门编写构造函数,默认情况下,一个Java类中会自动生成一个默认无参构造函数。默认构造函数一般会把成员变量的值初始化为默认值,如int -> 0,Integer -> null。
但如果手动在某个类中定义了一个有参数构造函数,那么这个默认的无参构造函数就不会自动添加了。要手动创建!
/**
* 矩形
*/
class Rectangle {/*** 构造函数*/public Rectangle(int length, int width) {this.length = length;this.width = width;}/*** 无参构造函数*/public Rectangle() {}
}
二、类变量、成员变量和局部变量
Java中三种变量:类变量、成员变量和局部变量。分别存放在JVM的方法区、堆内存和栈内存。
public class Variables {/*** 类变量*/private static int a;/*** 成员变量*/private int b;/*** 局部变量* @param c*/public void test(int c){int d;}}
a作为类变量,存放在JVM的方法区;b作为成员变量,和对象一起存储在堆内存中(不考虑栈上分配的情况);c和d作为方法的局部变量,保存在栈内存。
介绍这三种变量类型,是因为很多人因为不知道这三种类型的区别,所以不知道他们分别存放在哪里,这导致不知道那些变量需要考虑并发问题。
关于并发问题,这里简单说明:
因为只有共享变量才会遇到并发问题,所以,变量a和b是共享变量,变量c和d是非共享变量。所以如果遇到多线程场景,对于变量a和b的操作需要考虑线程安全,而对于线程c和d的操作不需要考虑线程安全。
三、成员变量和方法作用域
通过封装手段,将成员变量、方法等包装在一个类中,那么被封装在类中的这些成员变量和方法,能不能被外部访问呢?能被谁访问呢?
这种能不能被访问、能被谁访问的特性,Java是通过访问控制修饰符来实现。
Java中,可以用访问控制符来保护对类、变量、方法和构造方法的访问,Java 支持 4 种不同的访问权限。
对于成员变量和方法的作用域,public,protected,private及不写间的区别:
public:表明该成员变量或方法对所有类或对象都是可见的,所有类或对象都可直接访问。private:表明该成员变量或方法是私有的,只有当前类对其具有访问权限,除此之外其他类或对象都没有访问权限,子类也没有访问权限。protected:表明成员变量或方法对类自身,与同在一个包中的其他类可见,其他包下的类不可访问,除非是其的子类。default:表明该成员变量或方法只有自己和其位于同一个包的内可见,其他包内的类不能访问,即便是它的子类。
相关文章:
Java代码组成部分
一、构造函数与默认构造函数 构造函数,是一种特殊方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。 /** * 矩形 */ class Rectangle {/*** 构造函数*/public Rectangle(int leng…...
vue2和vue3有啥区别,vue3的优点有哪些?
Vue.js 是一种流行的 JavaScript 框架,用于开发现代 Web 应用程序。Vue.js 具有简单易用、高效和灵活等特点,能够极大地提高开发效率并改进用户体验。Vue.js 一直在不断更新和改进,它的最新版本是 Vue 3。 在本文中,我们将探讨 V…...
就业内推 | 上市公司招网工,最高25k*14薪,六险一金
01 锐捷网络 招聘岗位:网络工程师 职责描述: 1、承接本产品线(无线或数通)所有咨询、故障、网络变更等业务,响应内外部客户的业务响应需求,需要值班。 2、同时作为产品线技术力的核心,需要负责…...
低代码让开发变得不再复杂
文章目录 前言低代码 VS 传统开发为什么选择IVX?平台比对总结 前言 在数字化的时代背景下,企业都面临巨大的数字化转型的挑战。为了应对这样的挑战,企业软件开发工具和平台也在不断革新和发展。低代码开发平台随之应运而生,成为了…...
【前端客栈】使用CSS实现畅销书排行榜页面
📬📫hello,各位小伙伴们,我是小浪。大家都知道,我最近是在更新各大厂的软件测试开发的面试真题,也是得到了很大的反馈和好评,几位小伙伴也是成功找到了测开的实习,非常不错。如果能前…...
【周末闲谈】超越ChatGPT?科大讯飞星火认知大模型
个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 前言星火名字的由来科大讯飞星火落地应用演示赶超ChatGPT的底气在哪里?“硬…...
第N2周:中文文本分类-Pytorch实现
目录 一、前言二、准备工作三、数据预处理1.加载数据2.构建词典3.生成数据批次和迭代器 三、模型构建1. 搭建模型2. 初始化模型3. 定义训练与评估函数 四、训练模型1. 拆分数据集并运行模型 一、前言 🍨 本文为🔗365天深度学习训练营 中的学习记录博客 …...
Salesforce许可证和版本有什么区别,购买帐号时应该如何选择?
Salesforce许可证分配给特定用户,授予他们访问Salesforce产品和功能的权限。Salesforce版本和许可证是不同的概念,但极易混淆。 Salesforce版本:这是对组织购买的Salesforce产品和功能的访问权限。大致可分为Essentials、Professional、Ente…...
接口测试怎么做?全网最详细从接口测试到接口自动化详解,看这篇就够了...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 抛出一个问题&…...
DataStore入门及在项目中的使用
首先给个官网的的地址:应用架构:数据层 - DataStore - Android 开发者 | Android Developers 小伙伴们可以直接看官网的资料,本篇文章是对官网的部分细节进行补充 一、为什么要使用DataStore 代替SharedPreferences SharedPreferences&a…...
用Python爬取中国各省GDP数据
介绍 在数据分析和经济研究中,了解中国各省份的GDP数据是非常重要的。然而,手动收集这些数据可能是一项繁琐且费时的任务。幸运的是,Python提供了一些强大的工具和库,使我们能够自动化地从互联网上爬取数据。本文将介绍如何使用P…...
深度学习-第T5周——运动鞋品牌识别
深度学习-第T5周——运动鞋品牌识别 深度学习-第T5周——运动鞋品牌识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目3、查看数据 四、数据预处理1、 加载数据1、设置图片格式2、划分训练集3、划分验证集4、查看标签 2、数据可视化3、检查数据4、配置数据集 …...
自媒体的孔雀效应:插根鸡毛还是专业才华?
自媒体时代,让许多原本默默无闻的人找到了表达自己的平台。有人声称,现在这个时代,“随便什么人身上插根鸡毛就可以当孔雀了”。可是,事实真的如此吗? 首先,我们不能否认的是,自媒体确实为大众提…...
Linux系统优化
一、系统启动流程 1.centos6 centos6开机启动流程,传送门 2.centos7启动流程 二、系统启动运行级别 2.1 什么是运行级别 运行级别:指操作系统当前正在运行的功能级别; [rootweb01 ~]# ll /usr/lib/systemd/system lrwxrwxrwx. 1 root root…...
Java笔记_22(反射和动态代理)
Java笔记_22 一、反射1.1、反射的概述1.2、获取class对象的三种方式1.3、反射获取构造方法1.4、反射获取成员变量1.5、反射获取成员方法1.6、综合练习1.6.1、保存信息1.6.2、跟配置文件结合动态创建 一、反射 1.1、反射的概述 什么是反射? 反射允许对成员变量,成…...
前端web入门-HTML-day01
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 HTML初体验 HTML 定义 标签语法 总结: HTML 基本骨架 基础知识: 总结&#…...
创建一个Go项目
创建一个Go项目 1.创建项目 package mainfunc main() {println("你好啊,简单点了!") }如果是本地的话可以采用go run 项目名的方式。 可以采用go run --work 项目名的方式,此时可以展示日志信息。 如果是只编译的话 go build 项…...
从 Spring 的创建到 Bean 对象的存储、读取
目录 创建 Spring 项目: 1.创建一个 Maven 项目: 2.添加 Spring 框架支持: 3.配置资源文件: 4.添加启动类: Bean 对象的使用: 1.存储 Bean 对象: 1.1 创建 Bean: 1.2 存储 B…...
【一文吃透归并排序】基本归并·原地归并·自然归并 C++
目录 1 引入情境基本归并排序实现 C 2 原地归并排序2-1 死板的解法2-2 原地工作区2-3 链表归并排序 3 自底向上归并排序4 两路自然归并排序4-1 形式化描述4-2 代码实现 1 引入情境 归并思想:假设有两队小孩,都是从矮到高排序,现在通过一扇门后…...
读《Spring Boot 3核心技术与最佳实践》有感
我是谁? 👨🎓作者:bug菌 ✏️博客:CSDN、掘金、infoQ、51CTO等 🎉简介:CSDN/阿里云/华为云/51CTO博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者&am…...
实战指南:为spring boot项目快速配置最优jdk环境,助力应用高效部署
最近在准备一个Spring Boot项目时,发现JDK环境配置这个看似简单的环节其实藏着不少学问。特别是当项目需要兼顾开发效率和生产环境稳定性时,合理的JDK配置方案就显得尤为重要。今天就来分享下我的实战经验,以及如何利用工具快速搞定这些配置。…...
Qwen2.5-VL应用指南:如何用它做智能客服、文档分析和内容创作
Qwen2.5-VL应用指南:如何用它做智能客服、文档分析和内容创作 1. 引言:认识Qwen2.5-VL的强大能力 Qwen2.5-VL是通义千问团队推出的最新视觉-语言多模态模型,相比前代产品有了显著提升。这个7B参数的模型不仅能理解图像内容,还能…...
Aurix/Tricore实验解析:从链接脚本到汇编指令的Trap向量表构建
1. 理解Trap机制与向量表基础 在Aurix/Tricore架构中,Trap(陷阱)是处理器响应异常事件的硬件机制,相当于汽车的安全气囊——平时看不见,但遇到碰撞时会立即触发保护。与中断不同,Trap是同步触发的ÿ…...
【Feign】⭐️ 混合编码实战:SpringFormEncoder 同时支持 MultipartFile 与 @RequestBody 参数传递
1. 混合编码场景下的Feign实战痛点 最近在重构微服务项目时,遇到个特别典型的场景:服务A需要调用服务B的接口,其中有些接口要上传Excel文件(MultipartFile类型),另一些接口又要传递复杂的JSON对象…...
新手福音:用快马AI生成带详解注释的Arduino交通灯实验代码
作为一个刚接触单片机的新手,第一次看到Arduino开发板时既兴奋又迷茫。那些闪烁的LED灯和蜂鸣器背后到底藏着什么秘密?今天我就用InsCode(快马)平台来探索一个有趣的交通灯模拟项目,整个过程比想象中简单多了。 项目构思 我想做一个能模拟真实…...
终极指南:Czkawka开源文件管理工具,5分钟解决存储空间不足难题
终极指南:Czkawka开源文件管理工具,5分钟解决存储空间不足难题 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 你是否经常遇…...
原创:第三篇(工程落地・首个抓手)电磁筑基:无线充电工程落地总案
第三篇(工程落地・首个抓手)电磁筑基:无线充电工程落地总案 作者:华夏之光永存 总摘要 当前人类电磁学应用仍处于婴孩阶段,现有电磁能量传输技术多局限于有线模式,存在传输损耗高、场景适配性差、灵活性不足…...
腾讯文档协作全攻略:从权限设置到区域锁定,团队办公效率翻倍
腾讯文档团队协作高阶指南:权限控制与区域锁定的艺术 在数字化办公时代,团队协作的效率往往决定了项目的成败。作为国内领先的在线协作文档工具,腾讯文档凭借其流畅的实时协作体验和丰富的权限管理功能,已经成为众多团队的首选工具…...
cobalt数据库设计解析:如何平衡性能与数据完整性
cobalt数据库设计解析:如何平衡性能与数据完整性 【免费下载链接】cobalt best way to save what you love 项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt 引言:数据库设计的永恒矛盾 在软件开发领域,数据库设计始终面临…...
5分钟搞定AutoHotkey脚本转EXE:Ahk2Exe终极编译指南
5分钟搞定AutoHotkey脚本转EXE:Ahk2Exe终极编译指南 【免费下载链接】Ahk2Exe Official AutoHotkey script compiler - written itself in AutoHotkey 项目地址: https://gitcode.com/gh_mirrors/ah/Ahk2Exe 想要将AutoHotkey脚本快速转换为独立的可执行文件…...
