java语法基础-java面向对象编程-包的定义及使用

Java基础语法 Java 是,所有变量必须先声明后使用。publicprotectedprivateStringMathScannerSystem.outint age和int Age是不同变量。:每行代码以分号;结束。:使用大括号{}表示代码块。main 方法。 阅读详情

包的定义

在实际的项目开发过程之中,肯定要一直存在有包的概念,利用包可以实现类的包装,在以后的实际开发之中,所有的类都必须放在包里面

对于项目而言,尤其是现代的项目是不可能一个人开发完成的,往往在一个项目的开发团队之中会有2-3位的开发者进行项目业务的实现,于是在这样的情况下就不得不去面对一个问题:有可能产生类的重名定义

在操作系统之中已经明确严格的定义了一个要求:同一个目录之中不允许存放有相同的程序类文件,但是在实际的开发之中很难保证类的不重复,所以为了可以进行类的方便管理,那么往往可以将程序文件放在不同的目录下,不同的目录之中是可以提供相同文件的,而这个目录就成为包。包 = 目录

package cn.mldn.demo; // 定义包,其中.表示分割子目录(子包)
public class Hello{
    public static void main(String args[]){
        Syetem.out.println("Hello World");
    }
}

一旦程序开发之中出现有包,此时程序编译后的结果就必须将.class文件保存在指定的目录之中,但是如果手工建立则非常的麻烦,那么此时最好的做法是可以进行打包编译处理:javac -d . Hello.java*

  • "-d" :表示要生成目录,而目录的结构就是package定义的结构
  • "." : 表示在当前所在的目录中生成程序类文件

在程序执行的时候一定要带着包执行程序类:java cn.mldn.demo.Hello,也就是说从此之后完整的类名称是"包.类名称"

在以后开发中,必须有包,必须放在首行

包的导入

利用包的定义实际上就可以将不同功能的类保存在不同的包中,但是这些类彼此之间一定会存在有互相调用的关系,那么在这个时候就需要使用import语句来导入其他包中的程序类。

范例:定义一个程序类"cn.mldn.util.Message",这个类负责进行一个消息数据获取

package cn.mldn.util;
    public class Message{
    public String getContent(){
    return "www.mldn.cn";
    }
}

范例:定义一个测试类使用Message类"cn.mldn.test.TestMessage"

package cn.mldn.test ;
import cn.mldn.util.Message ; // 导入其他包的类
public class TestMessage{
    public static void main(String args[]){
        Message msg = new Message();// 实例化对象
        System.out.println(msg.getContent());
    }
}

此时按照使用顺序来讲肯定要先编译TestMessage.java,但是你思考一个问题,如果你现在写了一个程序代码,里面有100个类,彼此之间互相引用严格,此时你怎么区分?那么这个时候最好的做法不是区分顺序,而是直接交给Java自己完成,编译的命令:

javac -d . *.java
java cn.mldn.test.TestMessage

注意:关于public class于class定义的区别?

  • public class :类名称必须于文件名称保持一致,一个 .java文件里面只允许有一个public class,同时如果一个类需要被其他的包所使用,那么这个类一定要定义为public class

  • class: 类名称可以与文件名称不一致,并且在一个.java文件里面可以提供有多个class定义,编译后将形成不同的.class文件,但是这些类只能够被本包所访问,外包无法访问**

  • 在实际的开发之中往往在一个.java源代码里面只会提供有一个程序类,而这个程序类一般都使用public class定义*

程序类中定义的包名称必须采用小写字母的形式定义,例如:cn.mldn.util

但是这个时候会有一个新的问题产生,有些时候可能会使用某一个包中的很多类,于是这样分开进行类的导入比较麻烦,为了解决这样的问题,也可以使用通配符来处理*

即便此时使用了"包."的导入形式,那么也不表示要全部的加载,它会根据自己的需要加载所需要的程序类,而不需要的程序类是不会被加载的,所以是使用"",还是使用具体的类其最终的性能是完全相同的**

import cn.mldn.util.* ; 

但是如果在开发之中采用的是"包."的形式进行包的导入时,那么有一点会比较麻烦:有可能两个不同的包中存在有相同的类名称*,例如:现在假设TestMessage类由于某种需要导入两个包:cn.mldn.util,org.demo,但是这两个包里面都有Message类

package cn.mldn.util;
public class Message{
public String getContent(){
    return "www.mldn.cn";
    }
}

package org.demo;
public class Message{
    public String getInfo(){
    return "www.xxxx.cn";
    }
}

由于某种需要在TestMessage类里面导入了两个包

//org.demo 中的类 org.demo.Message 和 cn.mldn.util 中的类 cn.mldn.util.Message 都匹配

类名称相同的时候就会出现不明确的引用处理,所以此时最简单的处理形式就是直接写上类的完整名称

package cn.mldn.test ;
import cn.mldn.util.Message ; // 导入其他包的类
public class TestMessage{
    public static void main(String args[]){
        cn.mldn.util.Message msg = new cn.mldn.util.Message();// 实例化对象
        System.out.println(msg.getContent());
    }
}

在日后的开发过程之中经常会见到大量的重名的类(包不重名),此时为了更好的解决问题,往往会使用类的完整名称进行操作

静态导入

假如说现在有一个类,这个类中的全部方法都是static方法,那么按照原始的做法肯定要导入程序所在的"包.类"。而后才可以通过类名称调用这些静态方法

package cn.mldn.util;
public class MyMath{
    public static int add(int ... args){
        int sum = 0;
        for(int temp :args){
            sum += temp; 
        }
        return sum;
    }
public static int sub(int x, int y){
    return x-y;
    }    
}

如果此时按照原始的方式进行导入处理,那么此时就需要导入包.类,而后通过类名称调用

范例:原始方式使用

package cn.mldn.test ;
import cn.mldn.util.* ; // 导入其他包的类
public class TestMath{
    public static void main(String args[]){
         System.out.println(MyMath.add(1,2,3));
         System.out.println(MyMath.sub(3,2));
    }
}

从JDK1.5开始对于类中全部由静态方法提供的特殊类是可以采用静态导入处理的

范例:静态导入

package cn.mldn.test ;
import static cn.mldn.util.MyMath.* ; // 导入其他包的类
public class TestMath{
    public static void main(String args[]){
        System.out.println(add(1,2,3));
        System.out.println(sub(3,2));
    }
}

当使用了静态导入处理之后就好比该方法是直接定义在主类中的,可以由主方法直接调用

生成jar文件

当一个项目开发完成之后一定会存在大量的.class文件,那么对于这些文件的管理往往可以利用一种压缩结构的形式来进行处理,而这样的结构在Java之中就被称为jar文件,如果要将程序打包为jar文件,那么可以直接利用jdk中提供的jar命令完成*

在最原始的时候如果要想知道jar命令的时候直接输入jar即可,而在JDK1.9之后为了统一化,所以需要使用"--help"查看相关说明

下面通过程序的具体演示来实现jar的使用与配置

1.定义一个程序类,这个类代码如下

package cn.mldn.util;
public class Message {
    public String getContent(){    
        return "www.mldn.cn";
}
}

2.对程序进行编译与打包处理

1.  对程序打包编译:javac -d . Message.java
2.  此时会形成cn的包,包里面会有相应的子包与*.class文件,将其打包为mldn.jar
    : jar -cvf mldn.jar cn
          "-c" :创建一个新的jar文件
          "-v":得到一个详细输出
          "-f":设置要生成的jar文件的名称,本处定义的是"mldn.jar"

3.每一个.jar文件都是一个 独立的程序路径,如果要想在Java程序之中使用此路径,则必须通过CLASSPATH进行配置*

SET CLASSPATH=.;C:\Users\wang\Desktop\demo.mldn.jar

程序解释执行的时候要通过CLASSPATH加载类

4.建立测试类,直接导入

package cn.mldn.test;
public class TestMessage{
    public static void main(String args[]){
    cn.mldn.util.Message msg = new cn.mldn.util.Message();
    System.out.println(msg.getContent());
    }
}

随后就可以正常编译TestMessage类并且使用这个类:

  • 编译程序类:javac -d . TestMessage.java
  • 解释程序:java cn.mldn.TestMessage

如果此时程序编译通过之后,但是由于CLASSPATH发生了改变,类无法加载到了,则执行TestMessage类的时候将会出现如下的错误提示:

Exception in thread "main" java.lang.NoClassDefFoundError: cn/mldn/util/Message

出现这种错误只有一种情况:*.jar包没有配置正确

JDK1.9之后出现的模块化操作-了解

  • 在JDK1.9以嵌所有的历史版本之中实际上提供的是一个所有类的*.jar文件(rt.jar,tools.jar),在传统的开发中只要启动了Java虚拟机,那么就需要加载这几十兆的类文件
  • 在JDK1.9之后提供了一个模块化的设计,将原本很大的一个要加载的一个*.jar文件变成了若干个模块文件,这样在启动的时候可以根据程序加载指定的模块(模块中有包),就可以实现启动加快的效果

系统常用包

Java语言从发展至今一直提供有大量的支持类库,这些类库一般由两个方面组成:

  • Java自身提供的(除了JDK提供的类库之外还会由一些标准)
  • 由第三方厂商提供的Java支持类库,可以完成各种你所需要的功能,并且支持的厂商很多

而在JDK之中也会提供有大量的类库,并且这些类库都是封装在不同的开发包之中的

  • java.lang:像String,Number,Object等类都在这个包里面,这个包在JDK1.1之后自动默认导入

  • java.lang.reflect:反射机制处理包,所有的设计从此开始

  • java.util:工具类的定义,包括数据结构的定义

  • java.io:进行输入与输出流操作的程序包

  • java.net:网络程序开发的程序包

  • java.sql:进行数据库编程的开发包

  • java.applet:Java的最原始的使用形式,直接嵌套在网页上执行的程序类

    • 现在的程序已经以Application为主了(有主方法的程序)
  • java.awt,javax.swing:Java的图形界面开发包(GUI),其中awt是属于重量级的组件,而swing是轻量级组件

访问控制权限

在面向对象的开发过程之中有三大主要特点:封装,继承,多态。那么对于封装性而言主要的实现依靠的就是访问控制权限,而访问控制权限在程序之中一共定义有四种:private,default(不写),protected,public

NO访问范围privatedefaultprotectedpublic
1同一包中的同一类√√√√
2同一包中的不同类×√√√
3不同包的子类××√√
4不同包的所有类×××√

在整个访问控制权限的处理之中,只有protected(受保护)的权限是比较新的概念,下面对这一访问权限的使用进行说明,本次要定义两个类:

  • cn.mldn.a.Message类:提供有protect访问权限
  • cn.mldn.b.NetMessage类:将直接访问protect属性

范例:定义Message类

package cn.mldn.a;
public class Message{
    protected String info = "www.mldn.cn";
}

范例:定义子类,与父类不在同一包中

package cn.mldn.b;
import cn.mldn.a.Message ;
public class NetMessage extends Message {
    public void print(){
        System.out.print(super.info);
    }
}

范例:编写测试类,通过子类实现操作

package cn.mldn.test;
import cn.mldn.a.*;
public class TestMessage{
    public static void main(String args[]){
        new NetMessage().print();
    }
}

此时的程序是通过子类访问了父类中的protected属性。但是如果说自此你直接通过Message访问info属性,那么就将出现错误的提示

package cn.mldn.test;
import cn.mldn.a.* ;
import cn.mldn.a.Message;
public class TestMessage {
    public static void main(String[] args) {
       System.out.println(new Message().info);
    }
}

在程序之中的封装一共有三个对应的封装权限:private ,default,protect,但是如果每次在使用的时候进行区分会比较麻烦,所有可以给出一个参考的选择方案(90%设计问题):

  • 只要是进行属性的定义,全部使用private
  • 只要是进行方法的定义,全部使用public
Win10下Delphi 10.4.2 (RAD Studio 10.4.2 )安装教程图解 Win10下Delphi 10.4.2 (RAD Studio 10.4.2 )安装和破解教程图解 阅读详情

相关推荐

告别死记硬背!用业务场景驱动理解SAP PS OPSA参数文件配置

本文通过制造业新产品研发项目案例,详细解析SAP PS模块中OPSA参数文件配置的实际应用。从项目立项、WBS分解到研发物料管理,系统讲解关键配置项的业务价值,帮助用户告别死记硬背,实现业务场景驱动的参数配置学习。特别适合制造业项目管理人员提升SAP PS配置效率。

weixin_30415113的博客 482

包的定义和使用

包的本质实际上就属于一个文件夹。在任何的一个项目里面很难避免重复的类名称出现。而且如果所有的*.class文件都存放在一个目录之中,那么就有可能出现覆盖的情况,而这样就会造成项目的整体开发困难,所以为了解决这样的冲突,所谓的java程序都应该保存在自己的目录中,而这个目录就称为包。包的定义如果要想进行包的定义,只需要在*.java源文件第一行编写:package 包名称;语句即可package c...

编程语言基础知识 865

vivado2020.2安装教程:Windows平台完整指南

手把手带你完成vivado2020.2安装教程,覆盖下载、配置到验证全过程,解决常见安装问题,确保在Windows平台顺利部署开发环境,适合初学者快速上手。

weixin_42607969的博客 1347

Java 中的包是什么?如何创建和使用包?(八)

Java 中的包(Package)是一种逻辑上的组织结构,包含多个类和接口。在上面的示例中,我们定义了一个名为 “com.example.myapp” 的包。该包包含了一个或多个 Java 类文件,这些文件可以存放在同一个目录中,也可以存放在不同的目录中。通常情况下,包名是按照组织机构和项目名称来命名的,以避免名称冲突和重复。例如,在上面的示例中,“com.example” 表示组织机构的域名,而 “myapp” 则表示项目名称。

Dakaring的专栏 4659

GitHub 镜像站点

国内访问 GitHub 有时会遇到速度慢或不稳定的情况,这时 GitHub 镜像站点就能帮上忙。它们通过代理或缓存机制,让你更顺畅地浏览仓库、下载资源甚至克隆代码。希望这些信息能帮你更顺畅地访问 GitHub 资源。下面表格汇总了一些常见的镜像站及其主要用途。

BillKu的博客 6万+

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 716

Java ---包

java包,相关知识

qq_63976098的博客 1680

告别纸上谈兵:在Xilinx Artix-7 FPGA上实测RGMII接口,从ILA抓包到PC Ping通全流程记录

本文详细记录了在Xilinx Artix-7 FPGA平台上实现RGMII接口的全过程,包括硬件配置、Vivado工程设置、双沿数据转换代码实现以及ILA波形分析。通过实测数据包捕获和PC端Ping测试,验证了千兆以太网通信的稳定性和可靠性,为工业通信网关等应用提供了实用参考。

weixin_33701251的博客 287

(Java)包的概念及使用

文章目录一、包的基本概念二、import 语句三、系统常见包四、Java 新特性 -- 静态导入 一、包的基本概念 当有多个开发人员共同开发同一个项目,肯定会出现类名称相同的情况,这样一来就会比较麻烦 此时可以利用 package 关键字来解决此问题。 package 是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入 package 关键字即可: package 包名称...

南淮北安的博客 3114

PostgreSQL 核心原理:大字段(大对象)是如何被压缩和存储的(TOAST存储机制)

PostgreSQL通过TOAST机制高效处理大字段存储问题,解决单行超过8KB页大小限制的挑战。TOAST采用透明分片、按需加载和自动压缩策略,支持TEXT、JSONB等变长类型,无需用户干预。其核心包括四种存储策略(plain/external/main/extended),自动将大字段分片存入专用TOAST表,主表仅保留指针。读取时按需解压拼接,支持部分加载优化。TOAST表结构包含chunk_id、序列号和分片数据,配合内置PGLZ压缩算法,平衡存储效率与访问性能。该机制使PostgreSQL能稳定

数据知道的博客 2630

SpringBoot4.0+JDK25+GraalVM实战:云原生新纪元,微服务性能翻倍的落地指南

三者的组合不是偶然,而是“框架优化+JDK升级+虚拟机革新”的必然结果——SpringBoot4.0完善了对GraalVM原生镜像的支持,JDK25强化了云原生与AOT编译能力,GraalVM则提供了极致的启动速度和资源利用率,三者协同,刚好命中云原生微服务的核心痛点。SpringBoot4.0+JDK25+GraalVM的组合,不是简单的版本升级,而是云原生微服务的一次性能革命。

2601_94871597的博客 1142

Java基础_13 | Java中包的概念和使用详解

1.为什么需要包 默认情况下编译一个.java文件,编译之后该文件中的每个类都会生成一个<类名>.class文件,我们可以直接通过类名找到这个类,比如: class A { public void fun() { System.out.println("Hello"); } } class TestA { public static void main(String[] a...

Mculover666的博客(嵌入式) 1246

YOLO26 改进 | 基于特征蒸馏 | 知识蒸馏 (Response & Feature-based Distillation)

本文系统介绍了YOLO26中的知识蒸馏技术,包含五大核心方法:基于响应的蒸馏(学习分类概率)、基于特征的蒸馏(学习中间层表示)、基于关系的蒸馏(学习特征关联)、通道维度蒸馏(CWD)和前景背景分离蒸馏(FGD)。文章深入解析了每种方法的数学原理与实现细节,并提出动态训练策略,包括一致性匹配和蒸馏权重退火机制。通过教师模型向学生模型传递"暗知识",在保持模型轻量化的同时逼近大模型性能。配套代码支持模块化组合不同蒸馏方法,为YOLO26模型压缩提供了一套完整的解决方案。

weixin_51988935的博客 275

(4)scala面向对象编程 (一)基础

scala面向对象编程基础面向对象编程包的声明import类属性访问权限方法对象构造方法高阶面向对象编程继承子类重写父类方法 之 动态绑定机制抽象 基础面向对象编程 笔记来自教程:https://www.bilibili.com/video/BV1aP4y1a7uC?p=25 包的声明 Java中package包的语法比较单一,Scala对此进行扩展 scala同一个源码文件中,包可以多次声明 包名可以和文件路径不一致 在包中声明的类,调用时,导入最后的那个包(从上到下,声明的所有包的路径联合) sca

qq_41123269的博客 878

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

面向对象<类特征/package包/类定义

面向对象三大特征:面向对象三大特征:抽象(封装);继承;多态;类特征:属性和方法:用来描述客观事物的一个实体,由一组属性和方法构成构建一个类,并给其属性和方法:而后调用这个类Package包:package包的作用:组织 相关的源代码;不同包中的类名可以相同,用来避免名字冲突;提供包以及的封装和存取权限。类定义class:类是一种抽象数据类型,在Java中也被当作一种数据类型来定义,,类成员包括数据成员(成员变量)和方法成员(成员方法)。

Zzhu0417的博客 245

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Java 的基础内容】

Windows:下载 JDK:安装 JDK:设置环境变量:验证安装:Linux(以 Ubuntu 为例):Eclipse下载网址:https://www.eclipse.org/downloads 设置环境变量(可选): 如果你希望在任何位置都能直接运行 Java 命令,可以设置环境变量。打开终端,输入以下命令: 在文件中添加以下行: 验证安装:视频教学链接: link在 Java 中,数据类型主要分为两类:基本数据类型和引用数据类型。基本数据类型:引用数据类型:类(class):自

2401_84473582的博客 1812

Java——包的概念及使用

package是在使用多个类或接口时,为了避免名称重复而采用的一种措施,直接在程序中加入package关键字即可 编译语法: javac -d . HelloWord.java -d:表示生成目录,生成的目录以package的定义为准 .:表示在当前所在的文件夹中生成   执行语法: java org.common.demo01.HelloWord //============...

weixin_34326429的博客 124

java基础语法(一)

java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念。先有类,然后由类来生成 对象(Object)。对象又叫做实例(Instance)。 2.类由两大部分构成:属性以及方法。属性一般用名词来表示,方法一般用动词来表示。 3.如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义 的多个类可以都不是

JAVA之迷 579

Java基础语法总复习

前言: 对于Java基础语法部分目前就告一段落啦,下面是之前写过的部分笔记,当然,这些目录中只涉及了部分我认为初学时应当总结概括的或者知识点较多的章节,对于此篇文章中未细细考究的内容大家可以由系列文章中细细解读。对于整个JAVA基础语法部分来说,下面这些文章中有未涉及到的,所以今天,查漏补缺,将这部分的重难点重新梳理一下。万丈高楼平地起,要打好地基,加油加油鸭!!! 系列文章目录 Java基础——数据类型 Java基础——数据类型转换与运算符 Java中的类和对象 Java面向对象编程之多态

敲敲敲 6704

java 包的定义与使用

包的定义与使用 在开发过程中,会定义很多类,为了避免相同类名称出现而发生覆盖的情况,把所有java程序保存在各自的目录里面,而该目录就是包。包的本质实际上就是一个文件夹。 一、包的定义 java程序是由一个public类和众多非public的类组成,在java程序的第一行加入“package 包名称;”,就可以把*.class文件保存在相应的包内;当需要调用此包中的类时,用“包名称.类名...

weixin_41550144的博客 1万+

JAVA基础语法——包

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。(当类很多时,可以很好的管理类【看Java API 文档】)如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。(区分相同名字的类)包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。(控制访问范围)

2402_86637890的博客 963

Java基础语法(六)——数组的定义与使用

文章目录Java基础语法(六)——数组的定义与使用一、 数组基本用法1.什么是数组2. 创建数组3.定义数组的方式4. 数组的使用(1)获取长度(2)访问数组中的元素(3)下标越界(4)遍历数组1.遍历方式(一)-----for循环2.遍历方式(二)---->for-each3.遍历方式(三)——使用操作数组的工具类进行数组的打印 本次内容介绍大纲 Java基础语法(六)——数组的定义与使用 一、 数组基本用法 1.什么是数组 数组本质上就是让我们能 “批量” 创建相同类型的变量. 例如: 如果需

rain67的博客 5691

Java—包的定义和使用

包是什么?包的作用导入包中的类自定义包包的访问权限控制 包是什么? 在开发过程中,会定义很多类,随着类越写越多,难免会出现类重名而发生覆盖的情况,为了在使用它们的时候不让编译器混淆,我们给类加上一个限定 (前缀),把所有java程序保存在各自的目录里面,而该目录就是包,包的本质实际上就是一个文件夹 即:把它们放在不同的包里面,调用时再加上前缀即可;这样好处是对同名的类进行了区分;能精确指出我们需要的哪一个;让同名的类在一个程序中可以共存 在Java中,包是对类、接口等的封装机制的体现,是一种对类或接口等的.

一朵花花 5762

Java 包的定义与使用

包是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。Java package提供了访问权限和命名的管理机制,它是Java中很基础却又非常重要的一个概念。一、包的作用 1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类

移动开发者 2万+

Java面向对象编程【基础篇】之基础语法

本文介绍了Java面向对象编程的基础语法,重点讲解了构造器、this关键字和封装三大核心概念。构造器部分详细说明了无参构造器和有参构造器的定义与使用场景,通过Student类案例演示了构造器的实际应用。this关键字章节阐述了其三个主要用途:访问类属性、调用本类构造器以及表示当前对象,并通过代码示例展示了具体用法。封装部分则从合理隐藏和合理暴露两个维度,说明了如何通过private修饰符和public的getter/setter方法来实现数据保护,确保对象属性的安全访问。

2402_88461821的博客 1126

Java学习之基础语法

Java语法基础

2301_80073794的博客 1407
上一篇: 使用乐观锁优化并行操作
下一篇: 深入源码剖析ThreadPoolExecutor的工作原理
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值