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.泛型 与面向对象的多态性相类似,应用泛型可以提高程序的复用性.与多态性不同的是,应用泛型可以减少数据的类型转换,从而提高代码的运行效率.泛型实际上是通过给类或接口增加类型参数实现的.不带泛型的类的 ...
随机推荐
- 发布 Rafy 源码到 GitHub
最近项目组开始使用 Git 来作为源码管理.我今天就顺便把 Rafy 的源码也迁移到了 github 上,方便大家使用.这是项目的地址:https://github.com/zgynhqf/raf ...
- Effective java笔记(七),通用程序设计
45.将局部变量的作用域最小化 将局部变量的作用域最小化,可以增强代码的可读性和可维护性,并降低出错的可能性. Java允许在任何可以出现语句的地方声明变量(C语言中局部变量要在代码块开头声明),要使 ...
- C# 热敏打印机 Socket 网络链接 打印 图片 (二)
IPAddress ip = IPAddress.Parse("192.168.1.212"); IPEndPoint iport = );//9100为小票打印机指定端口 Soc ...
- 【转】App开放接口api安全性—Token签名sign的设计与实现
前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等, ...
- LINQ to SQL语句(16)之对象标识
对象标识 运行库中的对象具有唯一标识.引用同一对象的两个变量实际上是引用此对象的同一实例.你更改一个变量后,可以通过另一个变量看到这些更改. 关系数据库表中的行不具有唯一标识.由于每一行都具有唯一的主 ...
- Git GUI下载远程源代码简单使用介绍
学习编程,适当的时候弄些开源项目的源代码来学习实践,对技术是很有帮助的.如果学习.NET.C#的话,codeplex上面有许多不错的源代码,推荐一个ASP.ENT的:HoverTree http:// ...
- .Net(c#)模拟Http请求之HttpWebRequest封装
一.需求: 向某个服务发起请求获取数据,如:爬虫,采集. 二.步骤(HttpWebRequest): 无非在客户端Client(即程序)设置请求报文(如:Method,Content-Type,Age ...
- C# 时间戳转换为时间方法
/// <summary> /// 时间戳转为C#格式时间 /// </summary> /// <par ...
- 【转】c#获取网页地址参数
假设当前页完整地址为:http://www.jbxue.com/aaa/bbb.aspx?id=5&name=kelli则: "http://"是协议名"www. ...
- onclick标签变成小手状
style=“cursor: pointer;”