Java基础知识笔记(七:接口、变量作用域和参数传递)
一、接口
Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类。但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性。接口的定义格式如下:
【接口修饰词列表】 interface 接口名 【extends 接口名称列表】
{
接口体
}
接口修饰词列表可以包含0个、1个或者多个接口修饰词。如果存在多个接口修饰词,则在相邻两个接口修饰词之间采用空格分隔开。接口修饰词包括:public、abstract和strictfp等。在同一个Java源文件中可以包含多个类或接口,但不能包含两个或者两个以上的具有public修饰词的类或者接口。如果在接口修饰词列表中不含关键字public、protected和private,则在上面定义的接口具有默认的封装访问控制属性,只能在当前的软件包中使用。
接口名可以是任意的合法标识符。
Extends 接口名称列表是可选项,如果包括extends j接口名称列表这一选项,则在接口名称列表中可以包含1个或者多个接口名称,则在相邻两个接口名称之间采用逗号分隔开。
接口体部分可以定义接口的两类成员要素:成员域和成员方法。在接口体内部不含构造方法,因此一般不能直接通过接口生成接口的实例对象。其中,接口的成员域,简称为域,其定义格式如下:
【域修饰词列表】 类型 带初始化的变量名称列表;
接口的所有成员域都具有public、static和final属性。
接口的成员方法,简称为方法。接口的成员方法只能是抽象成员方法,其定义格式如下:
【方法修饰词列表】 返回类型 方法名(方法的参数列表);
接口的所有成员方法都具有public和abstract属性。
二、变量作用域范围
在Java语言中,变量主要包括成员域、成员方法或构造方法的参数变量、在方法体内的局部变量。变量作用域范围指的是变量在Java程序中的有效范围。变量作用域范围可以分为三种:全局作用域范围、类作用域范围和块作用域范围。具体如下:
(1)全局作用域范围
静态成员域具有全局作用域范围。
(2)类作用域范围
不具有静态属性的成员域具有类作用域范围。在该成员域所在类型或其子类型的不具有静态属性的成员方法的方法体中可以直接访问不具有静态属性的成员域,即使成员方法的定义在成员域的定义前面。
(3)块作用域范围
成员方法或构造方法的参数变量以及在方法体内定义的局部变量具有块作用域范围。这里成员方法或构造方法的参数变量以及在方法体内定义的局部变量,统称为局部变量。局部变量的作用域从该变量的声明处,一直到该变量所在的块结束处。
三、方法调用的值传递方式
方法调用的参数传递方式指的是在方法调用时从方法的调用参数代入到方法定义的参数的方式。在Java语言中,方法调用的参数传递方式基本上都采用值传递方式。成员方法的声明格式如下:
【方法修饰词列表】 返回类型 方法名(方法的参数列表)
方法调用的格式有如下3种形式:
(1)成员方法名(成员方法调用参数列表)
(2)表达式.成员方法名(成员方法调用参数列表)
(3)类名.静态成员方法名(成员方法调用参数列表)
在方法调用时,要求调用参数与成员方法的定义参数个数相同,而且类型相匹配。
在进行方法调用时,首先将调用参数表达式的存储单元的内容复制给定义参数变量的存储单元,即将调用参数表达式的值赋值给定义参数变量,从而使得定义参数变量的值与调用参数表达式的值相同,这个过程称为参数传递。
另外,需要特别注意的是:参数的值传递不能改变调用参数变量的值,如果需要改变调用参数变量的值可以采用引用数据类型值的传递。(这类似于C语言中的指针,使用指针传递值才能改变调用参数变量的值)
Java基础知识笔记(七:接口、变量作用域和参数传递)的更多相关文章
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- Java基础知识笔记第六章:接口
接口 /* 使用关键字interface来定义一个接口.接口的定义和类的定义很相似,分为接口声明和接口体 */ interface Printable{ final int max=100; void ...
- 漫漫Java路1—基础知识3—数据类型和变量作用域以及常量
强类型语言 所有变量定义后才能使用,区别于js等弱类型语言 数据类型分类 基本类型(primitive type) 引用类型(reference type) 整数类 byte:占1字节 short:占 ...
- Java基础知识笔记(一:修饰词、向量、哈希表)
一.Java语言的特点(养成经常查看Java在线帮助文档的习惯) (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最 ...
- Java基础知识笔记第七章:内部类和异常类
内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...
- JAVA基础知识笔记
1.类只能用Public修饰,不能使用protected.private修饰.也可以不加修饰符,称做友好类. 2.类的实体元素包含成员变量和方法的定义,成员变量分为实例变量和类变量(static修饰的 ...
- Java基础知识笔记(八:集合类)
目录 1 集合类简介 2 List介绍及简单使用 2.1 LinkedList介绍及简单使用 2.2 ArrayList介绍及简单使用 2.3 Vector介绍及简单使用 2.3.1 S ...
- Java基础知识笔记(四:多线程基础及生命周期)
一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类. ...
- Java基础知识笔记(二:泛型和枚举)
1.泛型 与面向对象的多态性相类似,应用泛型可以提高程序的复用性.与多态性不同的是,应用泛型可以减少数据的类型转换,从而提高代码的运行效率.泛型实际上是通过给类或接口增加类型参数实现的.不带泛型的类的 ...
随机推荐
- 深入浅出JS的封装与继承
JS虽然是一个面向对象的语言,但是不是典型的面向对象语言.Java/C++的面向对象是object - class的关系,而JS是object - object的关系,中间通过原型prototype连 ...
- .NET Core全新路线图(译)
标签: .NETCore 翻译 承接张善友大大的.NET Core全新路线图,翻译了原文,水平有限,尽量一观. 原文地址<.NET Core Roadmap>,原作者Scott Hunte ...
- 基于CkEditor实现.net在线开发之路(1)
我以前的公司使用office sharepoint designer为界面设计器,嵌套各种自定义控件,进行各种管理软件,工作流的开发,遇到比较复杂的逻辑,则采用本地写类库,生成DLL上传到服务器,通过 ...
- 应用程序启动管理 Winform版
★前言 开发这个小工具的想法主要是机器中安装了数据库,每次设置开机启动数据库服务的话,则系统启动很慢,每次都得手动到服务管理器中停止服务,很是繁琐,相信不少做开发的朋友会遇到同样的问题,就有 ...
- WPF平台Grid控件性能比较
WPF官方发布第一个版本至今已经有10年了, 我们几乎在同时也开始了XAML开发.即使经过多年打造,我们依旧尝试提高:我们真的成功打造了高效灵活的控件吗?我没有在其他地方找到任何关于优秀的WPF表格性 ...
- python 替换 文件夹下的 文件名称 及 文件内容
示例效果: 1.替换某文件夹下的 文件夹及子文件夹 的名称 由OldStrDir 变为 NewStrDir: 2.替换某文件夹下的 文件夹及子文件夹 下 所有的文件的名称 由OldStrFile 变为 ...
- [moka同学笔记]七、Yii2.0课程笔记(魏曦老师教程)[新增管理员,重置密码]
- R语言数据处理包dplyr、tidyr笔记
dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口:tidyr包的作者是Hadley ...
- android px,dp,sp大小转换工具
package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类<br/> ...
- Linux(二)__文件目录、常用命令
一.linux下的文件目录 linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层 是根目录"/",然后在此目录下再创建其他的目录 深刻理解linux文件目录是非常重要 ...