当前位置: 首页 > ai >正文

【Java SE】类和对象(3)

目录

类与对象基础:

6.1再谈static 

6.2  static 修饰成员变量

6.3  static 修饰成员方法

7.1代码块

①普通代码块

②构造代码块

​编辑

③静态代码块

④同步代码块


 

【Java SE】类和对象(1)-CSDN博客文章浏览阅读765次,点赞39次,收藏9次。本文摘要: Java类与对象基础概念总结:1.类是对实体的描述模板,采用大驼峰命名,包含属性和方法;2.通过new关键字实例化对象,可创建多个实例,成员变量有默认值;3.this关键字用于引用当前对象,可访问成员变量/方法,还能在构造方法间调用;4.构造方法需与类同名,无返回值,支持重载,编译器会生成默认无参构造;5.对象初始化分为默认初始化(赋予默认值)和就地初始化(编译时会加入构造方法)。文章还介绍了IDEA快速生成构造方法的技巧。 https://blog.csdn.net/Boop_wu/article/details/148620285

【Java SE】类和对象(2)----封装-CSDN博客文章浏览阅读283次,点赞7次,收藏8次。摘要:封装是面向对象编程的核心特性之一,通过将数据和方法捆绑在类中并控制访问权限来提升代码安全性。Java提供四种访问修饰符:private(仅类内)、default(同包)、protected(同包及子类)、public(全局)。最佳实践包括:成员变量设为private并提供getter/setter,遵循最小权限原则。包机制支持代码组织,使用反转域名命名(如com.example),通过import导入其他包内容。封装关键步骤包括访问控制、提供公共方法和构造方法验证。 https://blog.csdn.net/Boop_wu/article/details/148651888


类与对象基础:
  • 类作为实体模板,采用大驼峰命名,包含属性和方法
  • 通过new实例化对象,this引用当前实例
  • 构造方法支持重载,编译器提供默认无参构造
  • 对象初始化包括默认初始化和就地初始化两种方式

封装特性:

  • 使用private/protected/public等访问修饰符控制可见性
  • 通过getter/setter方法访问私有成员
  • 包机制采用反转域名命名规范管理代码组织

静态成员:

  • static修饰的成员属于类级别,所有对象共享
  • 静态方法不能访问非静态成员,不支持多态
  • 静态代码块在类加载时执行,用于初始化静态变量

代码块类型:

  • 实例代码块初始化对象成员
  • 静态代码块初始化类成员(仅执行一次)
  • 执行顺序:静态代码块→实例代码块→构造方法

6.1再谈static 

在java 中被static 修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对象,是所有对象共享的。


public class Student{public String name;public int age;public double score;//public static String classRoom = "一班";private static String classRoom = "一班";public Student(String name, int age, double score) {this.name = name;this.age = age;this.score = score;}public void doclass(){System.out.println("上课");}public static String getClassRoom(){//age+=1;//doclass;return classRoom;}public static void main(String[] args) {System.out.println(Student.classRoom);Student s1 = new Student("张三",15,78.5);System.out.println(s1.classRoom);System.out.println(Student.getClassRoom());}}


6.2  static 修饰成员变量

static 修饰成员变量,称之为静态成员变量

特性

①不属于某个具体的对象,是所有对象所共享的,不存储在某个对象的空间中。
②既可以通过对象访问,也可以通过类名访问(更推荐)。
③类变量存储在方法区当中。
④随类的加载而创建,随类的卸载而销毁。

6.3  static 修饰成员方法

特性

①不属于具体的对象,是类方法

②可以通过对象调用,也可以通过类名 . 静态方法名 (....) 的方式调用,(大体同上)

不能再静态方法中访问任何非静态成员变量,如下所示

④静态方法中不能调用任何非静态方法,因为非静态方法有this参数,再静态方法中无法传递this 引用

⑤静态方法无法重写,不能用来实现多态


7.1代码块

使用 {   } 定义的一段代码称为代码块,根据代码块定义的位置以及关键字,又可以分为以下四种:

①普通代码块

定义在方法中的代码块

    public static void main(String[] args) {{int x = 10;System.out.println("x1=" + x);}int x = 100;System.out.println("x2="+x);}

x处于两个不同的作用域


public class Student{private String name;private String gender;private int age;private static String classRoom;{this.name = "zhangsan ";this.gender = "男";this.age = 59;}static {classRoom = "一班";}public static void main(String[] args) {Student s1 = new Student();}}

②构造代码块

定义在类中的代码块(不加修饰符)。也叫实例实例代码块。一般用于初始化实例成员变量

③静态代码块

使用static 定义的代买块成为静态代码块。一般用于初始化静态成员变量。

注意:

  • 不管实例化多少个对象,静态代码块只在类被加载的时候执行一次(静态成员变量是类的属性)。
  • 如果出现多个静态代码块,则根据先后顺序执行(合并)
  • 执行顺序:静态代码块→实例代码块→构造代码块;若是平级的,则根据定义的顺序执行。
  • 实例代码块只有在创建对象时才会被执行。

④同步代码块


http://www.xdnf.cn/news/14347.html

相关文章:

  • Kafka源码P2-生产者缓冲区
  • 基于大模型预测缺铁性贫血的综合技术方案大纲
  • 记录一次 Oracle 表空间不足问题的解决过程
  • Linux进程间通信(上)
  • Proteus8.17-LCD12864液晶屏幕仿真模型
  • 华为OD机试-考勤信息-双指针(JAVA 2025B卷)
  • AI是什么?大模型、语料、训练、推理、机器学习、神经网络等专业名词如何关联
  • 基于docker的nocobase本地部署流程
  • CPU的异常处理
  • PC16550 UART接收中断处理完整示例代码
  • 134-135Elements-UI组件库
  • 03- 六自由度串联机械臂(ABB)动力学分析
  • SoftMax 函数
  • Unity基础-范围检测
  • Redis全面深入学习目录
  • 求数组中最长单调不降连续子数组的长度
  • stm32 f103c8t6仿真 串口收发测试
  • 用AI配合MCP快速生成n8n工作流
  • 【Linux服务器】-安装zabbix-负载环境(故障自动切换场景)
  • HarmonyOS Grid 网格拖拽完全指南
  • 设备健康管理系统搭建全技术解析:从架构设计到智能运维实践
  • Linux 忘记root密码如何解决-linux025
  • 理解 package.json 中的版本控制:“nuxt“: “3.16.0“ vs “nuxt“: “^3.16.0“ 的深层差异
  • DependencyMatcher + ML Reranking 策略设计实践
  • Qt3d中的材质--PBR材质
  • vue中computed和watch区别
  • jxWebUI--简单易用的webUI库
  • 大模型微调(Fine-tuning)概览
  • 算法导论第七章:快速排序的艺术与科学
  • 使用axios及和spirng boot 交互