几个关键字的小结

1static变量:

首先我们要明确,java程序是一个一个类构成的,每创建一个类的对象,就会开辟一块以类为模版的内存空间,这个空间中包括成员变量与成员函数,那么类中静态成员变量与普通的成员变量的区别我们可以依据于上述原理,用图来进行表示。

假设有一个学生类如下

public class Student{

     private String name; //学生的名字

     public static String school;  //学生的学校

     public void display(){ //定义一个显示信息的方法

       System.out.println(“学生姓名:”+name+”所在学校”+school);

     }

}

 

 

当创建两个不同的对象时stu1stu2时有:

 

 



 

 

我们知道,每个学生的姓名在对象中可以单独开辟一块内存,但是同一个学校的学生的学校名字可以同时用一块内存来存储。因此在这里用到了static关键字。这种用法有两种好处:一、节约内存,如果一个学校的人数比较多并且每个人都要开辟一块存储完全相同内容的内存空间的话那么就会早成浪费。二、便于维护,当该学校需要更改名字的时候只要该一个学生中school变量的名字就可以了,从途中可以看出,它们公用了一块内存空间。这就使得维护变得方便了许多。这便是static变量的优异性。三、在另一个类中要引用该类的static变量时只需要类名加上变量名即可,比如说Student.school这样的话使得不同的类之间沟通就变得方便许多。

 

2this关键字:

对与java的初学者来说this关键字是一个比较难以理解的内容,我们通过一下两个例子来看

 

(1)public class Student{

private String name //定义一个名字变量

public void setName(String name){  //定义一个设置名字的方法

      this.name = name;

}

}

在这里,由于类中变量同方法中的形参变量的名字相同,因此在赋值时必须区分哪一个是成员变量,哪一个是形参变量。而this在这里是指调用该方法(setName())的对象,就是说我现在定义一个对象stu并调用setName()方法,此时this指的就是stu

 

2public class Student{

         private String name;

         public Student(){  //无参构造器

             this(“zhangsan”);

}

public Student(String name){  //重载构造器

    this.name = name;

}

}

如果我们创建一个Student stu = new Student()时,调用的是无参构造器来创建的这一个对象,在构造器中他又会根据参数匹配原则调用另一个构造器。将name变量的初始值设为zhangsan。因此this关键字的第二个意思是指该类的构造器。在这里我们必须注意一点就是通过this调用构造器的话一定要将其放到该方法的第一行中。否则会报错。如

     public Student(){

         system.out.println(“this放在第二行”);

         this(“zhangsan”);  //没有将其放在第一行是错误的

}

 

 

 

 

3public protectedprivate

eclipse中,文件的层次是project àpackageàclass,因此这几个关键字所修饰的变量以及方法的作用域可以用如下的表格来表示

 

不同project

不同package

不同class

public

×

protected

×

×

private

×

×

×

 

我们可以看出他们的封装程度是依次加深的。还有两点需要注意,一是除了在接口中,其他类里如果没有规定这几个关键字,那么变量或者方法会有一个默认值,它是介于protectedprivate之间的,而在接口当中默认设置是public static的。二是如果在子类中重写父类的方法,那么该方法的可见程度一定要比父类中的方法高。否则编译时便会出错。

以上是我对这几个关键字的一个小结,如果想真正掌握的话还必须在写程序中多加使用。

 

 

采用PyQt5框架与Python编程语言构建图书信息管理平台 本项目基于Python编程环境,结合PyQt5图形界面开发库,设计实现了一套完整的图书信息管理解决方案。该系统主要面向图书馆、书店等机构的日常运营需求,通过模块化设计实现了图书信息的标准化管理流程。 系统架构采用典型的三层设计模式,包含数据存储层、业务逻辑层和用户界面层。数据持久化方案支持SQLite轻量级数据库与MySQL企业级数据库的双重配置选项,通过统一的数据库操作接口实现数据存取隔离。在数据建模方面,设计了包含图书基本信息、读者档案、借阅记录等核心数据实体,各实体间通过主外键约束建立关联关系。 核心功能模块包含六大子系统: 1. 图书编目管理:支持国际标准书号、中国图书馆分类法等专业元数据的规范化著录,提供批量导入与单条录入两种数据采集方式 2. 库存动态监控:实时追踪在架数量、借出状态、预约队列等流通指标,设置库存预警阈值自动提醒补货 3. 读者服务管理:建立完整的读者信用评价体系,记录借阅历史与违规行为,实施差异化借阅权限管理 4. 流通业务处理:涵盖借书登记、归还处理、续借申请、逾期计算等标准业务流程,支持射频识别技术设备集成 5. 统计报表生成:按日/月/年周期自动生成流通统计、热门图书排行、读者活跃度等多维度分析图表 6. 系统维护配置:提供用户权限分级管理、数据备份恢复、操作日志审计等管理功能 在技术实现层面,界面设计遵循Material Design设计规范,采用QSS样式表实现视觉定制化。通过信号槽机制实现前后端数据双向绑定,运用多线程处理技术保障界面响应流畅度。数据验证机制包含前端格式校验与后端业务规则双重保障,关键操作均设有二次确认流程。 该系统适用于中小型图书管理场景,通过可扩展的插件架构支持功能模块的灵活组合。开发过程中特别注重代码的可维护性,采用面向对象编程范式实现高内聚低耦合的组件设计,为后续功能迭代奠定技术基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值