关于java的访问权限
在看thinking in java中,发现访问权限这块有疑惑,一时也想不通,来网上找了些资料。整理如下。
关于protected权限的,真是个令人蛋疼的问题。
详解JAVA
语言中的访问控制
JAVA中的访问控制包括两个方面:类的访问控制、类成员(方法和域)的访问控制。也就是说,其他类是否能够访问定义了访问控制级别的类或类成员。即定义了访问控制级别的类或类成员对其他类的可见性怎样。
每一个类和每一个类成员,都有唯一一个访问控制级别。它们是:
1、 public:任意类都可以访问
2、 protected:包内非子类访问、包内子类访问、包外子类访问
3、 默认(无访问控制修饰符):包内非子类访问、包内子类访问
4、 private:本类访问
对于类来说,只允许声明public和默认访问控制级别。而对于类成员来说,则可以声明以上四种访问控制级别,并且任何一种访问控制级别的类成员都对本类可见。
声明了访问控制级别的类或类成员对其他类的可见性是对以下类来说的:
1、 包内任何类(非子类)
2、 包内子类
3、 包外任何类(非子类)
4、 包外子类
下面根据以上四种不同的访问控制级别对四种不同位置的类的可见性做详细解释。
一、public类
如果一个类声明为 public,则所有其他类(包内、包外)都可以导入此类、创建此类的实例、扩展此类。
(一)
类成员:方法
public方法:
1、 包内任何类(非子类)都可以通过创建public类的实例来访问此方法。
2、 包内子类通过扩展public类可以创建子类或超类实例来访问此方法。
3、 包外任何类(非子类)都可以通过创建public类的实例来访问此方法。
4、 包外子类通过扩展public类可以创建子类或超类实例来访问此方法。
protected方法:
1、 包内任何类(非子类)都可以通过创建public类的实例来访问此方法。
2、 包内子类通过扩展public类可以创建子类或超类实例来访问此方法。
3、 包外任何类(非子类)不能通过创建public类的实例来访问此方法。
4、 包外子类通过扩展public类可以创建子类实例来访问此方法。
注意:
1、 包内子类可以创建子类或超类实例来访问此方法,而包外子类只能创建子类实例来访问此方法,而一定不能创建超类实例来访问此方法,虽然包外子类可以创建超类实例。
2、 错误:当一个包外子类通过扩展
public类继承了超类的protected方法,
相关文档:
举例子说明一切。
JAVA_HOME: C:\j2sdk1.4.2_13
Path: C:\j2sdk1.4.2_13\bin;
Classpath:.;JAVA_HOME\lib\tools.jar ; JAVA_HOME\lib\dt.jar;
&n ......
import java.awt.*;
import javax.swing.*;
import java.util.Date;
import java.awt.*;
class Time extends JFrame implements Runnable{//实现接口
Thread clockThread;
JLabel jLabel=new JLabel();
public Time()
{
Container con=this.getContentPane() ......
1.List转换成为数组。(这里的List是实体是ArrayList)
调用ArrayList的toArray方法。
例:String[] arr = (String[])list.toArray(new String[size]);
2.数组转换成为List。
调用Arrays的asList方法。
例:List stooges = Arrays.asList("Larry", "Moe", "Curly"); ......
这是一个用JAVA W3C DOM 进行XML操作的例子,包含了查询、增加、修改、删除、保存的基本操作。较完整的描述了一个XML的整个操作流程。适合刚入门JAVA XML操作的朋友参考和学习。
假设有XML文件:test1.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
< ......
转帖处:http://dong-java.javaeye.com/blog/375150
1。推荐使用Oralce比较新的10.2.0.3 JDBC Drivers。这个版本对比9.2的最大的好处是DriverManager.setLoginTimeout函数是起作用的。设置了这个参数,在恶劣的网络环境中就不会有连接数据库的函数长时间不返回的情况。
2。JDBC Developer!ˉs Guide and Refer ......