类声明

public][

abstract][

final]

class

NameOfClass [

extends

Super][

implements

Interfaces]

pubilc:声明该类可以在其它任何类中使用。缺省时,该类只能被同一个包中的其它类使用。

abstract:声明该类为抽象类,不能被实例化。一个抽象类可以包含抽象方法,而抽象方法没有实现,所以抽象类不具备实际功能,只用于衍生子类。

final:声明该类不能被继承,即没有子类。不能通过扩展这个类来创建新的类。

extends:声明该类的父类,一个子类从其父类继承变量和方法。在

Java中,除

Object类之外,每个类都有一个父类。如果某个类没有父类,

Java就认为它是

Object类的子类,所以所有其它类都是

Object类的直接子类或者间接子类。注意在

extends关键字之后只能跟唯一的父类名,即使用

extends只能实现单继承。

implements:声明该类要实现的一个或多个接口,在

implements关键字之后给出该类实现的接口的名字表,以逗号分隔。

变量声明

[可访问性修饰符][

static][

final][

transient][

volatile]类型

变量名

可访问性修饰符:后面介绍。

static:声明该变量为类变量,以区别一般实例变量。类变量的所有实例使用同一个副本,属于类的公共域,为该类所有对象所共享,可看作是类范围内的一种全局变量。静态变量的值由静态方法来改变。

final:声明该变量为常量。注意使用关键字

final声明常量时需要说明常量的数据类型,同时指出常量的具体值。

transient:声明该变量为瞬态变量,瞬态变量不是对象的持久部分。

volatile:声明该变量可能被并存运行中的多个线程同时控制或修改,即该变量不仅仅被当前程序所控制,而且在运行过程中可能存在其它未知程序的操作来影响和改变该变量的值。

volatile关键字把这个信息传送给

Java的运行系统。

Volatile关键字通常用来修饰接受外部输入的域。

方法声明

[可访问性修饰符][

static][

abstract][

final][

native][

synchronized]返回类型

方法名(参数表)[

throws

异常类名表]

static:声明该方法为类方法。类方法有以下三点需要注意:

调用类方法时,应该使用类名做前缀,而不是使用某一个具体的对象名;

static方法是属于对象的方法,所以在创建对象时,非

static方法在对象分配到的内存中拥有自己专用的代码段,而

static方法属于整个类,它在内存中的代码段随着类的定义而装载,不被任何一个对象单独拥有;

static方法不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的类变量,即

static方法只能处理

static变量。

abstract:声明该方法为抽象方法,即仅有方法声明部分,而没有具体方法体和操作实现的方法。需要注意的是抽象方法必须存在于抽象类中,一个非抽象类中出现抽象方法是非法的,也即一个抽象类的子类如果不是抽象类,则它必须为父类中的所有抽象方法编写方法体。当然抽象类不一定只能拥有抽象方法,还可以包含非抽象方法。

final:声明该方法为最终方法。最终方法不能被当前类的子类重新定义。需要注意的是所有已被

private修饰符限定为私有的方法以及所有包含在

final类中的方法,都被缺省地认为是最终方法。因为这些方法要么不可能被子类继承,要么根本没有子类,所以都不可能被重载,自然都是最终方法。

native:声明用其它语言书写方法体的特殊方法,这里的其它语言包括

c、

c++、

FORTRAN、汇编语言等。

native方法的方法体在外部用其它语言写成,所以所有的

native方法都没有方法体。

synchronized:声明该方法为同步方法。

synchronized修饰符主要用于多线程共存程序中的协调和同步。如果

synchronized关键字修饰的是类方法,那么在这个方法被调用执行前,将把系统类

Class中对应当前类的对象加锁;如果

synchronize关键字修饰的是实例方法,那么在这个方法被调用执行前,将把当前对象加锁。

类成员的访问控制

在默认情况下,一个类作为整体可以被处于同一个包中的类所访问和引用;如果类被声明为

public,那么在程序中使用

import语句引入该类之后,就可以被所有其它类所访问和引用。

但是一个类作为整体对于程序的其它部分可见,并不代表类的所有域和方法也同时对程序的其它部分可见,还需要看这些域和方法自己的访问控制符。

Java语言支持对变量和方法的四个访问等级:

private、

protected、

public以及缺省修饰符。下表给出各访问等级的访问权限。

表格

1

:

访问修饰符的访问权限

可访问性修饰符

子类

所有

private

yes

protected

yes

yes

yes

public

yes

yes

yes

yes

缺省

yes

yes

参考:《

Java语言与面向对象程序设计》,朱福喜等编著。

java未知变量的类型_Java语言中类、变量及方法的声明 | 学步园相关推荐

  1. java怎么输入String类型_Java语言程序设计(五)从对话框获取输入及String类型

    1.String类型java char类型只能表示一个字符,为了表示一串字符,使用成为String(字符串)的数据类型,例以下述代码将消息声明为一个字符串.ide String message = & ...

  2. java中常量和变量的区别_Java语言基础 变量和常量

    变量和常量 1.变量的有效范围(作用域) (1)在类体中定义的变量被称为成员变量,成员变量在整个类中都有效.类的成员变量分为静态变量和实例变量,静态变量通过修饰符static确定,并且可以通过&quo ...

  3. java 服务器所在盘符_JAVA获取文件本身所在的磁盘位置 | 学步园

    我们在做java开发(纯java程序,或者java web开发)时,经常会遇到需要读取配置文件的需求,如果我们将文件所在位置的信息直接写到程序中,例如:E:\workspace\JavaGUI\bin ...

  4. java+获取下个小时_Java获取系统时间少8个小时 | 学步园

    java获取系统时间问题: public class TestDate { public static void main(String[] args) { System.out.println(&q ...

  5. java输出到空心三角形_java经典算法_019打印三角形(空心,实心) | 学步园

    打印三角形(空心,实心) package com.arithmetic; /** * 打印三角形(空心,实心) * * @author Administrator * */ public class ...

  6. java语言环境变量_JAVA语言环境变量的设置教程

    本文主要向大家介绍了JAVA语言环境变量的设置教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 安装JDK到目录,我这里是C:\Java 右键点击计算机属性 在系统变量里面建 JA ...

  7. java 变量 动态类型_Java:如何将变量从一种类型动态转换为另一种类型?

    慕斯卡3215842 是的,可以使用反射Object something = "something";String theType = "java.lang.String ...

  8. java定义基础变量语句_java语言基础-变量

    一丶变量的基本概念 1.什么是变量 (1).内存中的一个存储区域 (2).该区域有自己的名称(变量名),和类型(数据类型) (3.)该区域的数据可以在同一类型范围内不断变化(定义变量的主要目的是因为数 ...

  9. java中为什么需要常量和变量的区别_Java中的变量和常量

    1.变量(variable) 变量,顾名思义,就是变化的量. 我们可以通过变量来操作存储空间中的数据,变量就是指代这个存储空间,一旦你定义了一个一个变量,那么空间的位置就确定了,虽然空间位置是确定的, ...

最新文章

  1. matlab中数据可视化,matlab的数据可视化
  2. NETMF Versions 4.1 Release 发布
  3. [跟我一起涨姿势]未注册服务的RHEL6.4使用网易的CentOS源
  4. AttributeError: 'NoneType' object has no attribute '__array_interface__'
  5. Python学习1——Python中的 split() 函数
  6. 【HTML5】Server-Sent服务器发送事件
  7. vs未能找到程序集platform.winmd_PP体育直播大连人VS恒大:新老8冠王首尾对决竟有十大看点...
  8. python怎么一步步调试_PyCharm入门第一步(二)——调试第一个Python应用程序
  9. webpack中的loader
  10. 探寻C++最快的读取文件的方案
  11. kernel编译报错问题kernel is not clean, please run 'make mrproper'
  12. 【小程序】展示弹窗常见API详解
  13. [转]新建一个Android工程项目
  14. PowerManagerService分析-updatePowerStateLocked方法
  15. Tampermonkey脚本编写
  16. git报错 failed: The TLS connection was non-properly terminated
  17. JavaScript 数组塌陷
  18. 微信中那种卡片形式的图文链接是如何制作的
  19. 合成游戏开发 一起来养猪 幸福饭店 山海经
  20. bzoj2150部落战争 最小路径覆盖

热门文章

  1. Node版本管理nvm的用法
  2. golang.org/x/lint安装失败
  3. markdown入门4--矩阵空格公式方程组
  4. SpringBoot-异常处理
  5. Python制作AI贪吃蛇,很多很多细节、思路都写下来了!
  6. 正则表达式 之 python3
  7. servlet25配置和30
  8. android图片异步加载解决步骤
  9. 漫步数学分析十二——嵌套
  10. python时间复杂度和空间复杂度是指_时间复杂度和空间复杂度