【Java功能体】Java中的修饰符详解

从零到一:用Python打造你的智能交互桌宠,附完整源码与打包指南 本文详细介绍了如何从零开始使用Python开发智能交互桌宠,涵盖环境配置、窗口创建、动图加载、交互功能实现及打包发布全流程。教程特别适合零基础开发者,通过完整源码和分步指南,帮助读者快速掌握桌面宠物开发技巧,打造个性化AI伴侣。 阅读详情


修饰符分为访问修饰符和非访问修饰符。通过本文,我将阐述其基本原理和使用方法。

访问修饰符

共四种:default、private、public、protected
作用: 使用访问控制符来保护对类、变量、方法和构造方法的访问。

四种类别:
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public: 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

default

使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。
 接口里的变量都隐式声明为 public static final;
 而接口里的方法默认情况下访问权限为 public。

//default修饰普通类
public class Main {
	String version = "1.5.1"; //等价于: public String version = "1.5.1";
	boolean processOrder() { //等价于: public boolean processOrder() {}
	   return true;
	}
	
	public static void main(String[] args) {
		
	}
}

private

功能: private 访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据。
特性:

  • 被声明为 private 的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为 private。
  • 声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。

protected

protected 需要从以下两个点来分析说明:

  1. 子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;
  2. 子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。

protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(内部类除外)。

子类能访问 protected 修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。

非访问修饰符

共两种:static和final

static

Static的种类
特性:static修饰类方法和类变量。强调永远存在。
1. 静态变量:

  1. 属于类,不属于对象,也被称为类变量。

  2. 局部变量不能被声明为 static 变量。

  3. 调用方式①可以使用对象访问:“对象.属性名”。

  4. 调用方式②可以使用类名访问:“类名.属性名”(推荐使用!)。

2. 静态方法:

  1. 属于类,与具体对象没有关系。
  2. 静态方法不能使用类的非静态变量,因为每一个非静态变量是属于每一个对象的(每一个对象的数据是不同的)。
  3. 因为不属于对象,故而没有this和super。
  4. 静态方法从参数列表得到数据,然后计算这些数据。

3. static 修饰代码块

static {
    代码块;
}

备注:静态代码块执行优先级最高,它在类加载的时候就已经执行了。且只执行一次,通常用来加载:视频、图片等

static变量的调用

class People {
	static int number; //静态变量
	
	private String name;
	private int age;
	public People() {
		this.name = "A";
		this.age=10;
	}
}

public class Main {
	public static void main(String[] args) {
		People pa = new People();
		
		People.number = 100; //通过类调用static变量,推荐使用
		People.number += 1; 
		System.out.println("number: "+People.number);
		
		pa.number += 1; //通过对象调用static变量
		System.out.println("number: "+pa.number);
	}
}

static方法

class People {
	static int number; //静态变量
	
	private String name;
	private int age;
	public People() {
		this.name = "A";
		this.age=10;
	}
	
	public static void AboutThisClass() {
		System.out.println("This is a static method!");
		System.out.println("number: "+number);
		System.out.println("People.number: "+People.number);
		//this.number  没有this、super
		//name += 1  静态方法不能调用非静态变量
	}
}

public class Main {
	public static void main(String[] args) {
		People pa = new People();
		
		People.AboutThisClass();//以类的方式来调用静态方法,推荐使用
		pa.AboutThisClass(); //以对象的方式来调用静态方法,IDE给出警告,不推荐使用
	}
}

/*
 输出:
This is a static method!
number: 0
People.number: 0
This is a static method!
number: 0
People.number: 0
*/

static代码块

class People {
	static {
		System.out.println("这是static代码块!"); //只有在本程序、本类的首个对象创建时才会调用
	}
	
	private String name;
	private int age;
	public People() {
		this.name = "a";
		this.age = 10;
	}
	
	public void show() {
		System.out.println("name:"+this.name+" ,age:"+this.age);
	}
}

public class Main {
	public static void main(String[] args) {
		People pa = new People();
		pa.show();
		
		People pb = new People();
		pb.show();
	}
}

/*
 输出:
这是static代码块!
name:a ,age:10
name:a ,age:10
*/

static的特点

  1. 被所有的对象所共享
  2. 可以使用类名调用
  3. 静态的加载优先于对象
  4. 随着类的加载而加载
  5. 凡是static修饰过的变量或者方法都属于类,不属于对象!

static方法与非static方法对比

静态方法:

可以调用静态的成员变量
可以调用静态的成员方法
不可以调用非静态成员变量
不可以调用非静态成员方法
静态方法只能调用静态的成员

非静态方法:

可以调用静态的成员变量
可以调用静态的成员方法
可以调用非静态的成员变量
可以调用非静态的成员方法

final

final修饰类、方法和变量。强调永远不变。

  • final 修饰的类不能够被继承;这是因为继承后要被重写,而父类已经永不可变,故禁止继承;
  • final 修饰成员方法,该方法不能被重写;
  • final 修饰成员变量,此时变量不再是变量而是常量
//Javafinal修饰的类、方法、变量
final class FinalClass {
	private int x;
}
//报错,final类禁止被继承
//class NewClass extends FinalClass {
//	
//}

class People {
	private final String sexy = "man";

	//name = "woman";禁止修改final变量
	
	public final void PrintName() { //final方法
		System.out.println("sexy:"+this.sexy);
	}
}
class Student extends People {
//final方法禁止重写
//	public void PrintName() {
//		
//	}
}

public class Main {
	public static void main(String[] args) {
		People pa = new People();
		pa.PrintName();
	}
}
/*
 输出:
sexy:man
*/

  此外,还有abstract、synchronized、transient、volatile修饰符,这里不进行详细阐述。具体放到实际的使用环境再了解和学习它,例如学习抽象类时自然会了解到abstract


Devexpress16.2.6破解工具 Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具 立即下载

相关推荐

电力电子技术(13)——大功率可控整流电路

目录引言2.6.1 带平衡电抗器的双反星形可控整流电路电路结构的特点接平衡电抗器的原因平衡电抗器使得两组三相半波整流电路同时导电的原理分析谐波分析2.6.2 多重化整流电路概述原理目标1)移相多重联结2)多重联结电路的顺序控制3重晶闸管整流桥顺序控制带平衡电抗器的双反星形可控整流电路(是多重化整流电路的重要形式之一)的特点:适用于低电压、大电流的场合。多重化整流电路的特点:绕组的极性相反的目的:消除直流磁通势如图所示,虽然两组相电流的瞬时值不同,但是平均电流相等而绕组的极性相反,所以直流安匝(电流*匝数)互

weixin_45589295的博客 1万+

Java中的关键字default

default是Java8中的新特性,一般用于修饰接口中的方法。接口中的方法使用default关键词修饰后可以拥有方法体,而一般接口中的方法是不能有方法体的。只有在Java8或者更高的版本中才能使用这个关键词。public interface WordTEST_interface{ default void test(){ System.out.println("default te...

Nubea的博客 1012

将AAL图谱对应到Yeo7大网络中【原理,代码分析】

本文介绍了将AAL2图谱映射到Yeo7大功能网络的方法。通过整合皮层(Yeo2011)、小脑(Buckner2011)和纹状体(Choi2012)三个区域的功能网络图谱,采用投票机制确定每个AAL区域的网络归属。具体步骤包括:1)统计每个AAL区域体素在各网络图谱中的分布;2)选择体素数量最多的网络作为该区域的最终标签。该方法实现了从解剖结构到功能网络的映射,可获得120个AAL区域对应的7大功能网络标签。

yes666666的博客 2205

Java修饰符和关键字

1、private:只能在本类中访问,子类不能继承访问。public class People { String name; private int age; } public class Test { public static void main(String[] args) { People p = new People(); p.age

Tomi_En的专栏 2994

Vben Admin权限管理全解析:从动态菜单到按钮级控制(附代码示例)

本文全面解析Vben Admin框架的权限管理系统,从动态菜单生成到按钮级细粒度控制,提供完整的实现方案和代码示例。深入探讨基于角色-权限模型的架构设计,分享前后端协作的最佳实践,帮助开发者快速构建安全高效的企业级后台系统。

weixin_30919429的博客 485

Ubuntu Server 24.04 安装 (超详细)

本文介绍最小化安装 Ubuntu Server的详细过程。

炀炀的专栏 1万+

java中的default关键字详解

default关键字和Java中的public、private等关键字一样,都属于修饰符关键字,可以用来修饰属性、方法以及类,但是default一般用来修饰接口中的方法。出现该关键字的原因是,由于接口在Java中定义之初,有一个缺点,那就是,如果定义了一个接口,接口中又定义了N个方法,那么某个具体的类在实现该接口时,需要实现接口中的所有方法,不管是否需要用到接口中的方法。如果接口中的某个方法被default关键字修饰了,那么具体的实现类中可以不用实现方法。 Student类可以不用实现Person接口中的s

麦田里的守望者 2万+

window下移动设备/硬盘报错位置不可用

移动硬盘指示灯亮,但电脑上不显示 报错信息 : 无法访问E:\。参数错误。 报错原因: 移动硬盘打不开提示参数错误,是因为这个H盘的文件系统内部结构损坏导致的。要怎么恢复里面的数据呢? https://jingyan.baidu.com/article/cb5d6105a80242005c2fe0c3.html 解决办法 : 不用格式化修复方法 方法一: 1、单击–开始–运行–输入cmd; 2、...

qq_40907977的博客 4928

MySql入门-插入|修改|删除数据

插入数据 语法: INSERT INTO table_name ( field1, field2,field3) VALUES ( value1, value2,value3 ); INSERT INTO test.z_tool (id, title, url, source, createTime) VALUES (‘1’, ‘java基础’, 'https://www.runoob.co...

tulalazy1119的博客 195

Ubuntu离线情况下安装gcc编译器

Ubuntu离线情况下安装gcc编译器1.系统版本2.安装说明3.异常处理 1.系统版本 (1)Ubuntu系统版本:20.04.1LTS; (2)gcc编译器版本:gcc-9.3.0(下载链接为https://download.youkuaiyun.com/download/qq_18350351/13762214); 当前可找到的gcc最新版本为gcc-10,但是笔者在安装gcc-10版本时发现一些依赖项无法安装,因此选取了gcc-9版本。如果是在联网情况下安装,直接使用apt相关的安装指令即可。 2.安装说明 安

GreenHand的博客 3932

QT6实现USB摄像头接入显示与抓拍功能实现

QT实现USB摄像头接入显示 一、UVC协议简介 UVC全称是USB Video Class(USB视频类),是一种标准化的USB视频设备通信协议,它定义了摄像头与主机之间的数据传输协议和格式。 UVC协议的出现,解决了摄像头厂商之间互不兼容,以及摄像头应用开发与平台之间的散乱问题。 UVC标准是由USB-IF主导制定的,目前最新的版本是UVC 1.5,UVC的缺省设置类容易实现,不需要额外的驱动程序。

热土程序园,利他愉己~ 3416

java 修饰符应用_Java中各类修饰符的使用总结(看完这篇就够了)

引言:Java的修饰符根据修饰的对象不同,分为类修饰符、方法修饰符、变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符。访问控制存在的原因:a、让客户端程序员无法触及他们不应该触及的部分 b、允许库设计者可以改变类内部的工作方式而不用担心影响到客户端程序员。目录一、 类修饰符1.访问修饰符:公共类修饰符public公共类修饰符 public : Java 语言中类的访问控制符只有 ...

weixin_29239279的博客 865

【软件系统架构】系列六:系统工程

系统工程是一种跨学科方法论,用于分析、设计、集成和管理复杂系统的全生命周期。其核心特点包括系统性思维、全周期管理、跨学科协作和需求导向。主流采用V模型生命周期,涵盖需求分析、系统设计、实现、测试验证及运维退役等阶段。核心工作方法包括需求工程、系统建模、接口设计、风险管理等。系统工程与项目管理协同,分别侧重技术实现和进度资源管理。应用领域覆盖航天军工、智能制造、智慧城市等。未来将向AI融合、数字孪生、模型驱动工程等方向发展,为复杂系统开发提供系统化协作范式。

moton2017的博客 2257

java中的修饰符以及作用范围详解图解

java中的修饰符分为类修饰符,字段修饰符,方法修饰符。 权限访问修饰符有public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。 final修饰符 final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应

dianzijinglin的博客 9742

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JAVA中的权限修饰符

Java中修饰符总结: 访问控制修饰符 作用: 用于控制被修饰变量、方法、类的可见范围。 public的访问级别是最高的,其次是protected、默认和private 成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有 顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰 局部变量不能被访问控制修饰符修饰

肖坤的博客 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java中的修饰符

目录 修饰符 访问控制修饰符 非访问控制修饰符 修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。 Java语言提供了很多修饰符,主要分为以下两类: 访问控制修饰符 非访问控制修饰符 类修饰符 访问控制修饰符: public protected private 修饰类的属性:abstract static final strictfp ...

谢公子的博客 1432

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

详解Java中的修饰符

1、分类java提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 2、访问控制修饰符java中,可以使用访问控制符来控制对类、方法以及变量的访问权限。java中有四种不同的访问权限,具体说明及使用注意事项如下: default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 private : 在同一类内可见。使用对象:变量、方法。 注意:

gaoqisong的博客 603

Java修饰符详解:从基础到高级用法

abstract 修饰符在Java中用于创建抽象类和抽象方法。抽象类不能被实例化,其主要目的是为了将来对该类进行扩展。一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类必须声明为抽象类,否则将出现编译错误。

FXK_konami的博客 953

java中的修饰符

用来创建抽象类和抽象方法。

2401_84151334的博客 1102

JAVA中的修饰符是什么意思_java中的修饰符

java中的修饰符主要分为两种访问修饰符和非访问修饰符,下面就是具体的介绍啦,balalallala一、访问修饰符1.default:无修饰符,可以使用的范围(对象,类,接口,变量,方法)2.private:在同一类内可见,使用范围对象,变量,方法(不能修饰类)类和接口不可被声明为private,只能被所属类访问,类中公共的gette,setterr方法被外部类访问idea中创建getter的快捷...

weixin_30324103的博客 1475

java修饰符详解

基础不牢,地动山摇!!! 一些相关的名词 关键字,修饰符,标识符 关键字: Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。 关键字汇总和解释详见下表: abstract assert boolean break byte case catch c...

weixin_42689765的博客 772

Java之修饰符详解

修饰符的分类   权限修饰符:public(公有的) ,protected(受保护的),默认不写,private(私有的)   特征修饰符:finai(最终的,不可更改的),static(静态的),abstract(抽象的),native(本地的),transient(瞬时的,短暂的—>序列化),synchronized(同步的),volatile(不稳定的) 权限修饰符 Java有四种访问...

qq_43826456的博客 497

Java修饰符

一、知识点 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。 我们通过下面的例子来说明: 二、访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。 默认的,也称为default,在同一包内可见,不使用任何修饰符。 私有的,以private修饰符指定,在同一类内可见。 共有的,以public修饰符指定,对所有类可见。 受保护的,以protected修饰符指定

kids_fan的博客 3628

java 修饰符 详解,详解Java修饰符

Java语言提供了很多修饰符,主要分为以下两类:访问修饰符非访问修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明:访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。默认的,也称为default,在同一包内可见,不使用任何修饰符。私有的,以private修饰符指定,在同一类内可见。共有的,以publ...

weixin_34357614的博客 283

Java中的修饰符都有哪些

一、修饰符使用情况 类:[修饰符] class 名称 {} 构造函数:[修饰符] 名称 ( [参数列表] ) {} 实例变量:[修饰符] 数据类型 名称 [=初值] 局部变量:[修饰符] 数据类型 名称 [=初值] 方法:[方法修饰符] 返回类型 名称( [参数列表] ) [throws 异常类列表] {} 二、修饰符的类型 2.1 三种类的修饰符 publi...

a1786742005的博客 3570

Java 中的访问修饰符

访问修饰符是 Java 中控制类成员访问权限的重要工具。通过合理使用publicprotectedprivate和默认修饰符,我们可以实现封装、继承和多态等面向对象编程的核心概念。理解并掌握这些访问修饰符的使用方法和最佳实践,对于编写高效、安全的 Java 代码至关重要。希望这篇博客能够帮助你更好地理解 Java 中的访问修饰符,并在实际项目中灵活应用。如果你有任何问题或建议,欢迎在评论区留言讨论!

xycxycooo的博客 1323
上一篇: 【Java功能体】Java的选择结构和循环结构
下一篇: 【Java数据类型】Java数组详解
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值