ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA面向对象学习——java面向对象概念———访问控制符———隐藏和封装

2021-10-03 21:00:17  阅读:149  来源: 互联网

标签:语句 Java 包含 java 控制符 面向对象 导入 修饰 JAVA


隐藏和封装


封装实际上有两个方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来。这两个方面都需要通过使用Java提供的访问控制符来实现。

 

 

Java提供了3个访问控制符:private、protected和public,分别代表了3个访问控制级别,另外还有一个不加任何访问控制符的访问控制级别,提供了4个访问控制级别。

 

Java的访问控制级别由小到大如图5.14所示:

 

 

 

 

 

 

 

 

 

 

 

 

关于访问控制符的使用,存在如下几条基本原则。

 

➢ 类里的绝大部分成员变量都应该使用private修饰,只有一些static修饰的、类似全局变量的成员变量,才可能考虑使用public修饰。

    除此之外,有些方法只用于辅助实现该类的其他方法,这些方法被称为工具方法,工具方法也应该使用private修饰。

 

 

➢ 如果某个类主要用做其他类的父类,该类里包含的大部分方法可能仅希望被其子类重写,而不想被外界直接调用,则应该使用protected修饰这些方法。

 

 

➢ 希望暴露出来给其他类自由调用的方法应该使用public修饰。因此,类的构造器通过使用public修饰,从而允许在其他地方创建该类的实例。

     因为外部类通常都希望被其他类自由使用,所以大部分外部类都使用public修饰。

 

 

 

package语句必须作为源文件的第一条非注释性语句,一个源文件只能指定一个包,即只能包含一条package语句,该源文件中可以定义多个类,则这些类将全部位于该包下。如果没有显式指定package语句,则处于默认包下。

 

 

import可以向某个Java文件中导入指定包层次下某个类或全部类,import语句应该出现在package语句(如果有的话)之后、类定义之前。

 

 

 

JDK 1.5以后更是增加了一种静态导入的语法,它用于导入指定类的某个静态成员变量、方法或全部的静态成员变量、方法。

 

静态导入使用import static语句,静态导入也有两种语法,分别用于导入指定类的单个静态成员变量、方法和全部静态成员变量、方法

 

 

Java的核心类都放在java包以及其子包下,Java扩展的许多类都放在javax包以及其子包下。

 

 

 

下面几个包是Java语言中的常用包:

➢ java.lang:这个包下包含了Java语言的核心类,如String、Math、System和Thread类等,使用这个包下的类无须使用import语句导入,系统会自动导入这个包下的所有类。

➢ java.util:这个包下包含了Java的大量工具类/接口和集合框架类/接口,例如Arrays和List、Set等。

➢ java.net:这个包下包含了一些Java网络编程相关的类/接口。

➢ java.io:这个包下包含了一些Java输入/输出编程相关的类/接口。

➢ java.text:这个包下包含了一些Java格式化相关的类。

➢ java.sql:这个包下包含了Java进行JDBC数据库编程的相关类/接口。

➢ java.awt:这个包下包含了抽象窗口工具集的相关类/接口,这些类主要用于构建图形用户界面(GUI)程序。

➢ java.swing:这个包下包含了Swing图形用户界面编程的相关类/接口,这些类可用于构建平台无关的GUI程序。

 

标签:语句,Java,包含,java,控制符,面向对象,导入,修饰,JAVA
来源: https://www.cnblogs.com/xiaobaibailongma/p/15365045.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有