重温经典《Thinking in java》第四版之第六章 访问权限控制(三十七)

简介: 重温经典《Thinking in java》第四版之第六章 访问权限控制(三十七)

“6.2 Java访问权限修饰词”,该小节讲到了private、protected、包和public这几个修饰符的概念以及区别,在这里还是希望通过之前的提到的描述来学习这些内容。

(1)public:可以被所有其他类所访问。

(2)private:只能被自己访问和修改。

(3)protected:自身,子类及同一个包中类可以访问。

(4)default(默认):同一包中的类可以访问,声明时没有加修饰符

首先public的访问控制权限不需要借助例子来说明其使用,只要通过public修饰的类或者方法或者属性,不管在什么地方,均可以被使用。下面就private,proected和包访问权限举几个例子来讲解一下,也是本小节内容的例子。

6.2.3 private:你无法访问,关键字private的意思是,除了包含该成员的类外,其他任何类都无法访问这个成员。

 

classSundae { 
privateSundae() {} 
staticSundaemakeASundae() { 
returnnewSundae(); 
    } 
} 
publicclassIceCream { 
publicstaticvoidmain(String[] args) { 
//! Sundae x = new Sundae(); Sundaex=Sundae.makeASundae(); 
    } 
}

///:~

这个private的例子包含了一定的单例模式的思想,你不能通过new Sundae();的方式创建对象,因为构造函数是private的,该类只提供了静态的makeASundae()间接的创建对象。

“6.2.4 protected:继承访问权限”,当前虽然没有专门的介绍继承的概念,但是需要使用protected的权限演示,还是需要提前学习一下继承的概念。可以简单通过extends关键字来体会一下,比如:

class Foo extends Bar {

这种写法就可以理解为Foo继承Bar。下面直接举一个使用protected的例子:

packageaccess.cookie2; 
publicclassCookie { 
publicCookie() { 
System.out.println("Cookie constructor"); 
    } 
protectedvoidbite() { 
System.out.println("bite"); 
    } 
} 
importaccess.cookie2.*; 
publicclassChocolateChip2extendsCookie { 
publicChocolateChip2() { 
System.out.println("ChocolateChip2 constructor"); 
    } 
publicvoidchomp() { bite(); } // Protected method publicstaticvoidmain(String[] args) { 
ChocolateChip2x=newChocolateChip2(); 
x.chomp(); 
    } 
}

/* Output:

Cookie constructor

ChocolateChip2 constructor

bite

*///:~

上面代码中的protected void bite()就将bite()方法定义为了protected访问权限,只有这个方法所属类的继承类有权限使用,当然自己类内部也是可以使用的。

最后一种默认包权限的例子就不举具体的例子了,只要是在同一个包下的不是私有和protected修饰符修饰的类和方法均可以被访问到。

目录
相关文章
|
6月前
|
存储 算法 安全
Java对象创建和访问
Java对象创建过程包括类加载检查、内存分配(指针碰撞或空闲列表)、内存初始化、对象头设置及初始化方法执行。访问方式有句柄和直接指针两种,前者稳定但需额外定位,后者速度快。对象创建涉及并发安全、垃圾回收等机制。
Java对象创建和访问
|
8月前
|
NoSQL JavaScript 前端开发
Java访问MongoDB
Java访问MongoDB
82 21
|
8月前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
934 1
|
11月前
|
存储 Java
深入理解java对象的访问定位
这篇文章深入探讨了Java对象的访问定位机制,比较了使用句柄和直接指针两种主流的对象访问方式,并指出了它们各自的优势,例如句柄访问在对象移动时的稳定性和直接指针访问的速度优势。
100 1
深入理解java对象的访问定位
|
10月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
166 3
|
10月前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
202 2
|
11月前
|
Java
Java访问外网图片地址时,如何添加代理?
【10月更文挑战第14天】Java访问外网图片地址时,如何添加代理?
239 2
|
11月前
|
小程序 Java
小程序访问java后台失败解决方案
小程序访问java后台失败解决方案
115 2
|
11月前
|
小程序 JavaScript Java
小程序访问java后台
小程序访问java后台
81 1

热门文章

最新文章