从clone()谈protected】的更多相关文章

看到Object的clone()是protected的,然后看到<java2认证考试指南>上描述:一个对象只能请求其他对象的克隆,后者的类与被克隆对象属于同一类,或是被克隆对象的子类. example:   C-->B-->A <--D C对象能克隆B或A对象:B对象能克隆A对象:D对象能克隆A对象 B对象不能克隆D对象 我是读了很久没有理解,最后读了一些程序才发现这样理解:主要是visibility问题.因为是protected的,那么在子类不重载,则自动继承.子类和父类在…
要点: 1.浅度拷贝可以不实现Cloneable接口(自动使用Object.clone)或者不重写Cloneable的clone方法. 2.要被深度拷贝的类必须实现Cloneable接口并重写clone方法. 3.如果需要能被深度拷贝则需要在父一级对所有的非基本类型的子元素调用clone方法. 看例子: /** * 浅度clone的对象(浅拷贝) * * @author yzl */ public class ShallowCloneFavorite { private String name;…
package cn.hncu.day7.clone.v1;//克隆的套路:// 第1步:重写User类的clone()方法,以供外面调用.因为外面的类无法直接调用User类父类中的clone()方法--protected// 第2步:让User类实现Cloneable接口,否则clone时会抛出异常// 第3步:在需要进行克隆的其它类中调用:User u2 = (User)user.clone() //一个类的对象要想能够被clone,那么该类必须要实现Cloneable接口,否则clone时…
三种访问权限 public:可以被任意实体访问,数据成员和函数成员可在成员函数,友元,继承类中直接使用.亦可以作为接口,供类的用户使用 protected:只允许子类及本类的成员函数访问,在基类中用法同private,在类外不能被基类对象访问.在派生类中,用法同基类的public,其成员在类内可被其继承类对象访问使用,类外一样不可以. private:成员只能由类成员(类内)和友元访问.在类外不能被本类对象访问,不能被继承类访问(无论何种继承),虽然作为继承类的私有成员,但在使用过程中,是通过调…
先看Test.java 此时出现上文提到的错误:The method clone from the type Object is not visiuable. 我们已经清楚Object.clone()是protected方法.这说明,该方法可以被同包(java.lang)下以及它(java.lang.Object)的子类访问.这里我们自己定义的MyObject类(默认继承java.lang.Object). 同样Test也是java.lang.Object的子类.但是,不能在一个子类(Test)…
浅克隆 Person p2 = (Person) p1.clone(); clone()方法使用后得到p2,p2和p1指向不同的地址.但是如果p1中的属性是引用类型,那么不再对这个引用类型进行复制,而止于这个引用. clone类 Ojbect类中clone()是protected修饰,因此需要扩权.在Person中重写这个方法(并抛出异常).同时需要实现cloneable接口,否则将报错. 代码 Person类 public class Person implements Cloneable{…
Java中protected方法访问权限的问题 protected 修饰的成员变量或方法,只能在同包或子类可访问; package 1 public class TestPackage { protected String name; protected void f1() { TestPackage tt = new TestPackage(); System.out.println("ccc"); } } package 2; public class TestPackage2 e…
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/MongChia1993/article/details/69941783 第一部分 空间数据的背景介绍 空间数据的建模 基于实体的模型(基于对象)Entity-based models (or object based) 常用的空间数据查询方式 空间数据获取的方法 R树 简介 R树的数据结构 一个更具体的使用场景 一棵R树满足如下的性质: 结点的结构 R树的操作 搜索 插入 插入操作存在的情况 如…
第一部分 空间数据的背景介绍 空间数据的建模 基于实体的模型(基于对象)Entity-based models (or object based) 常用的空间数据查询方式 空间数据获取的方法 R树 简介 R树的数据结构 一个更具体的使用场景 一棵R树满足如下的性质: 结点的结构 R树的操作 搜索 插入 插入操作存在的情况 如何合理地分裂到两个组 删除 另一个例子再次理解删除 第二部分 R树的Java实现 UML 第一部分 空间数据的背景介绍 空间数据的建模 基于实体的模型(基于对象)Entity…
C++对象模型是比较重要的一个知识点,学习C++对象的内存模型,就可以明白C++中的多态原理.类的初始化顺序问题.类的大小问题等. 1 C++对象模型基础 1.1 C++对象中都有哪些东东 C++对象中包括以下内容: 静态常量 成员变量 成员函数 虚函数 纯续函数 ... 以下是一个对象的定义: class Base { static int b_s; public: void function() { } virtual void v_function() { cout << "B…