今天在检验垃圾回收方法时,想通过对象调用finalize方法来进行垃圾回收,却未找到当前方法,发现自己在基础方向尚有欠缺。

finalize方法是被projected来修饰的,那么需要针对关键字来理解一下了。

projected访问修饰符,它能在哪些地方调用呢?

先创建一个学生类:

package com.bo.pojo;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import java.util.List;@ConfigurationProperties(prefix = "student")
@Component
public class Student {private String name;private Integer age;private List<String> subjects;protected String temp;private Student friend;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public List<String> getSubjects() {return subjects;}public void setSubjects(List<String> subjects) {this.subjects = subjects;}public Student getFriend() {return friend;}public void setFriend(Student friend) {this.friend = friend;}protected  void outStudent(){System.out.println("我是Struent类");}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", subjects=" + subjects +", friend=" + friend +'}';}@Overrideprotected void finalize() throws Throwable {try{//release resources hereSystem.out.println("finalize已调用");}catch(Throwable t){throw t;}finally{super.finalize();}}
}

我们看到temp属性定义的是projected访问修饰符,那么我在同一个包下的另一个类中直接访问这个属性:

package com.bo.pojo;import com.bo.annotate.DbColumn;
import com.bo.annotate.DbTable;public class Teacher {public void test(){Student student = new Student();student.temp = "1";}
}

这个时候直接访问student类的temp是不报错的,因为它们都在com.bo.pojo这同一个包下。

但如果我们换一个包下调用呢?

这个时候就没有办法直接调用了,会爆红报错。

那么在不同包下继承这个student类呢?

当然在这个继承类的方法内部就可以直接调用student.temp了。

用projected修饰的方法也是同样的道理。

projected访问修饰符误区相关推荐

  1. C#的访问修饰符Protected

    首先,访问修饰符最常用的有 public private protected internal ...... public 和private确实很好理解,但是protected在做例子的时候我总是走入 ...

  2. 关于Java中各种修饰符与访问修饰符的说明

    关于Java中各种修饰符与访问修饰符的说明 类: 访问修饰符  修饰符  class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 ...

  3. java中的访问修饰符

    对Java中的修饰符一直记不住,现在结合网上的一些资料进行总结,并重点说明一下protected修饰符. 一. Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口.Java语 ...

  4. 【译文】 C#面向对象的基本概念 (Basic C# OOP Concept) 第一部分(类,对象,变量,方法,访问修饰符)...

    译文出处:http://www.codeproject.com/Articles/838365/Basic-Csharp-OOP-Concept 相关文档:http://files.cnblogs.c ...

  5. C# 可访问性不一致问题(修改成员的访问修饰符)。

    错误实例一:父类的访问性低于子类 class Person{}public class Students:Person{} 错误实例二:方法的访问修饰符需要和参数的类型的访问修饰符一致 class P ...

  6. java访问修饰符详解——学java,零基础不怕,不只要理论,更要实践+项目,a href=http://www.bjweixin.com太原维信科技提供 /a...

    java访问修饰符详解--学java,零基础不怕,不只要理论,更要实践+项目 <a href=http://www.bjweixin.com>太原维信科技提供 </a> pub ...

  7. 访问修饰符的个人理解-private与protected

    一:private                             private --只有在声明它的类或结构中访问. 例: public class A {   private string ...

  8. C++——类访问修饰符

    类访问修饰符 数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员.类成员的访问限制是通过在类主体内部对各个区域标记 public.private.protected 来指定的.关 ...

  9. .NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]...

    注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 ...

最新文章

  1. 行业研究报告基本分析思路
  2. amba simple class驱动_UML - 建模基础 - 用例驱动
  3. SD卡移植FAT32文件系统无MBR
  4. linux的增强文件夹,在linux系统中安装virtualbox增强功能(增强包)的详细步骤是什么...
  5. “八戒”马德华自传《悟能》首发《西游记》师徒五人再聚首
  6. Windows任务管理器
  7. 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项
  8. 下载 SharePoint Server 2016
  9. 委外订单--采购入库单不能记账
  10. PCB通孔类焊盘封装
  11. 【安信可首款4G模组CA-01直连阿里物联网平台②】一机一密认证方式连接
  12. 云计算工程师必备技能
  13. 活体检测论文研读三:Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision
  14. Socket+MFC的聊天室
  15. 史上最全的团队文档协作及管理工具盘点,看看哪款适合你
  16. 【JQuery】关于jQuery的load方法在Laravel里的使用
  17. 莫拉克电梯服务器说明书_默纳克电梯功能参数表
  18. 关于Android Pie(Android 9.0)
  19. 程序员最好掌握的两个思维模式
  20. mysql虚拟主机_虚拟主机有mysql吗

热门文章

  1. 申请CCRC信息安全服务资质企业需要满足的要求
  2. 专题: TechCrunch Disrupt NYC 2011
  3. ORACLE11g ORA 12514 TNS 监听程序当前无法识别连接描述符中请求的服务
  4. 微软提供的Office在线预览地址
  5. bitcount函数c语言,Bit命令
  6. Linux 的 rz 和 sz 命令
  7. selenium无法定位126邮箱
  8. LaTeX分享【LaTeX中文字的基本使用】
  9. C语言数组练习-三天打渔两天晒网
  10. 设计模式学习笔记(六) - 组合模式 Composite (树状结构专用模式)