十二、java类的结构(属性、方法、构造函数)

合集下载

Java反射,获取类的公有、私有的构造函数(有参,无参)、方法(有参,无参)、属性

Java反射,获取类的公有、私有的构造函数(有参,无参)、方法(有参,无参)、属性

Java反射,获取类的公有、私有的构造函数(有参,⽆参)、⽅法(有参,⽆参)、属性Class类与ng.reflect类库⼀起对反射进⾏了⽀持,该类库包含Field、Method和Constructor类,这些类的对象由JVM在启动时创建,⽤以表⽰未知类⾥对应的成员。

这样的话就可以使⽤Contructor创建新的对象,⽤get()和set()⽅法获取和修改类中与Field对象关联的字段,⽤invoke()⽅法调⽤与Method对象关联的⽅法。

另外,还可以调⽤getFields()、getMethods()和getConstructors()等许多便利的⽅法,以返回表⽰字段、⽅法、以及构造器对象的数组,这样,对象信息可以在运⾏时被完全确定下来,⽽在编译时不需要知道关于类的任何事情。

⾸先创建⼀个类1public class Per {2public String name="sunshine";3private int age=28;4public double weight=65.50;56public Per(){7 System.out.println("测试反射获取公有⽆参构造函数");8 }9private Per(String name){=name;11 System.out.println("测试反射获取私有有参构造函数");12 }13public Per(String name,int age){=name;15this.age=age;16 System.out.println("测试反射获取公有有多个参数构造函数name:"+name+" age:"+age);17 }18public String methodT1(){19 System.out.println("测试反射获取公有⽆参⽅法");20return null;21 }22public String methodT1(String name,int age){23 System.out.println("测试反射获取公有多个参⽅法");24 System.out.println(name+":"+age);25return null;26 }27private String methodT1(String name){28 System.out.println("测试反射获取私有有参⽅法");29 System.out.println("name:"+name);30return null;31 }32public String methodT2(int[] arr,String[] str){33 System.out.println("测试反射获取公有有数组参⽅法");34 System.out.println("int[] arr:"+arr+"String[] str:"+str);35return null;36 }37public static void main(String[] args) {38 System.out.println("测试反射获取main⽅法");39 }40 }1.使⽤java反射获取类的构造函数(公有、私有)(有参,⽆参)1import ng.reflect.Constructor;2import ng.reflect.Field;3import ng.reflect.Method;45import org.junit.AfterClass;6import org.junit.BeforeClass;7import org.junit.Test;8/**9 * 测试使⽤java反射获取类的构造函数并创建对象10 * @author Sunshine11 *12*/13public class ReflectPer {14private static Class class1;15//因为java反射获取类时都需要加载类,在这⾥我就使⽤Junit的@beforeclass来去加载类,不⽤在每个测试⽅法中重复创建16//注:@beforeclass在执⾏测试⽅法前运⾏17 @BeforeClass18public static void beforeClass() throws Exception{19 System.out.println("====测试⽅法启动前先加载类====");20 class1 = Class.forName("myPractise.Per");//加载类21 }22//获取类的公有⽆参构造函数,并创建对象23 @Test24public void test1() throws Exception{25 Constructor constructor = class1.getConstructor(null);//获取公有⽆参构造器,值为null代表获取⽆参构造器26 Per per = (Per) constructor.newInstance(null);//创建对象,返回的是Object类型要强转27 System.out.println();//可以调⽤类的属性-----成功28 }29//获取类的公有参构造函数,并创建对象30 @Test31public void test2()throws Exception{32 Constructor constructor = class1.getConstructor(String.class,int.class);//获取公有多个参数构造器,参数为构造器中参数的类型33 Per per = (Per)constructor.newInstance("baby",24);//创建对象34 }35//获取类的私有有参构造函数,并创建对象36 @Test37public void test3()throws Exception{38 Constructor constructor = class1.getDeclaredConstructor(String.class);//获取公有多个参数构造器,参数为构造器中参数的类型39 constructor.setAccessible(true);//暴⼒反射,只有将属性设置为true才可以创建对象40 Per per = (Per)constructor.newInstance("baby");41 System.out.println(per.weight);//可以调⽤类的属性-----成功42//注:通常情况下⼀个类不可以访问另⼀个类的私有的属性,⽅法。

java中类的用法

java中类的用法

java中类的用法Java是一种面向对象的编程语言,类是面向对象编程的基本概念之一。

在Java中,类是一种模板,它用来描述一类对象的方法和属性。

可以通过创建类的对象来使用它的方法和属性。

本文将介绍Java中类的用法。

一、定义类Java中定义类的语法如下:```java public class ClassName { // 类的成员变量 // 类的构造函数 // 类的方法 } ```其中,类名要遵循标识符的命名规范。

类的成员变量是类的属性,它们用于存储对象的状态。

类的构造函数用于创建对象并初始化它的成员变量。

类的方法用于定义对象的行为。

二、成员变量Java中的成员变量也称为类的属性,用于存储对象的状态。

成员变量可以是基本类型、引用类型或数组类型。

在类的定义中,成员变量要放在构造函数和方法的前面。

成员变量可以通过类的对象来访问和修改。

```java public class Person { private String name; private int age;public Person(String name, int age){ = name; this.age = age; }public String getName() { return name; }public void setName(String name){ = name; }public int getAge() { return age; }public void setAge(int age){ this.age = age; } } ```在上面的例子中,Person类有两个成员变量name和age,它们都使用private关键字修饰,表示只能在类内部访问。

同时,这个Person类提供了一个有参构造函数和getter、setter方法,用来访问和修改成员变量。

三、构造函数Java中的构造函数用于创建对象并初始化它的成员变量。

java的封装,继承和多态(思维导图)

java的封装,继承和多态(思维导图)

java的封装,继承和多态类和对象类类声明 { 成员变量的声明; 成员方法的声明及实现; }声明类:[修饰符] class 类<泛型> [extends 父类] [implements 接口列表]声明成员变量:[修饰符]数据类型 变量[=表达式]{,变量[=表达式]}成员方法声明:[修饰符]返回值类型 方法([形式参数列表])[throws 异常类列表]{语句序列;[return[返回值]]; }重载:一个类中可以有多个同名的成员方法,前提是参数列表不同,称为类的成员方法重载,重载的多个方法为一种功能提供多种实现。

重载方法之间必须以不同的参数列表(数据类型、参数个数、参数次序)来区别。

例如,MyDate 类可声明多个重载的set()方法如下: void set(int y,int m, int d)void set(int m, int d) //重载方法,参数个数不同void set(int d) void set(MyDate date)//重载方法,参数的数据类型不同对象对象声明:类 对象构造实例:对象 = new 类的构造方法([实际参数列表])引用对象的成员变量和调用成员方法:对象.成员变量 对象.成员方法([实际参数列表])类的封装性构造与析构类的构造方法用于创建类的一个实例并对实例的成员变量进行初始化一个类可声明多个构造方法对成员变量进行不同需求的初始化,构造方法不需要写返回值类型,因为它返回的就是该类的一个实例。

例:MyDate类声明以下构造方法:public MyDate(int year, int month, int day)// 声明构造方法,方法名同类名,初始化成员变量 {set(year, month day);// 调用 set()方法,为成员变量赋值}使用new运算符调用指定类的构造方法,实际参数列表必须符合构造方法声明。

例如:MyDate d1 = new MyDate(2017,10,1);//创建实例并初始化成员变量当一个类没有声明构造方法时,Java 自动为该类提供一个无参数的默认构造方法对象的引用与运算this引用访问本类的成员变量和成员方法:this.成员变量,this.成员方法([实际参数列表])调用本类重载的构造方法:this([实际参数列表])访问控制类的访问控制权限公有和(public)和缺省类中成员4级访问控制权限及范围声明set()和get()方法存取对象的属性例:public void set(int year, int month, int day) //设置日期值 public void set(MyDate date)//设置日期值,重载 public int getYear()//获得年份 public int getMonth()// 获得月份 public int getDay()//获得当月日期静态成员定义及访问格式使用关键字static声明的成员称为静态成员在类内部,可直接访问静态成员,省略类名。

Java基础知识总结(超详细整理)

Java基础知识总结(超详细整理)

Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。

⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。

2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。

3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。

另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。

4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。

5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。

6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。

多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。

7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。

java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。

8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。

合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。

不能把java关键字和保留字作为标识符。

标识符对⼤⼩写敏感。

关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。

第二章java基本语法

第二章java基本语法

第二章java基本语法§。

1 java程序的构成前言:java语言源程序采用有效的16bit双字节字符编码标准(uni code)。

Java程序构成分物理构成和逻辑构成。

逻辑构成是基于信息组织的角度,而物理构成是基于程序组成的角度•§2.1。

1逻辑构成程序头包的引用:主要是指引用jdk软件包自带的包,也可以java源程序逻辑构成是自己定义的类。

引用后程序体中就可以自由应用包中的类的方法和属性等。

类的定义:java语言源程序中可以有多个类的定义,但必须有一个主类,此主类是java程序运行的入口点.在应用程序中,主类为包含main方法的类;在applet中,主类为用户自定义的系统applet类的扩展类•在java语言源程序中,主类的名字同文件名一致。

注:类的定义有包括类头声明和类体定义。

类体中包括属性(成员变量)声明和方法(行为)描述。

【例2.1】下面是一个应用程序,也是一个applet,既可以在命令行下运行,也可以嵌到html网页中用appletviewer 命令运行。

程序如下:// 程序文件名为welcomeapplet.java 注释语句import java 。

applet。

* ;import java.awt 。

*; 卜引入包import java.awt 。

event.* ;public class welcomeapplet exte nds applet impleme nts action listener {主类类头public void action performed (actionevent e) {txtdisp.settext (txtname 。

gettext() + "欢迎你来到 java 世界!”; }public static void main (string args[]){frame f=new frame( 欢迎");f.addwindowlistener(new windowadapter()) {public void wi ndowclosi ng(wi ndoweve nt ev {system o exit (0);} }welcomeapplet a=new welcomeapplet ();a 。

什么叫构造方法?

什么叫构造方法?

什么叫构造⽅法?构造⽅法是⼀种特殊的⽅法,它是⼀个与类同名且没有返回值类型的⽅法。

对象的创建就是通过构造⽅法来完成,其功能主要是完成对象的初始化。

当类实例化⼀个对象时会⾃动调⽤构造⽅法。

构造⽅法和其他⽅法⼀样也可以重载。

定义:在Java中,任何变量在被使⽤前都必须先设置初值.Java提供了为类的成员变量赋初值的专门⽅法。

特殊性:构造⽅法是⼀种特殊的成员⽅法,它的特殊性反映在如下⼏个⽅⾯:1.构造⽅法作⽤:(1).构造出来⼀个类的实例(2).对构造出来个⼀个类的实例(对象)初始化。

2.构造⽅法的名字必须与定义他的类名完全相同,没有返回类型,甚⾄连也没有。

3.主要完成对象的初始化⼯作,构造⽅法的调⽤是在创建⼀个对象时使⽤new操作进⾏的。

4.类中必定有构造⽅法,若不写,系统⾃动添加⽆参构造⽅法。

接⼝不允许被实例化,所以接⼝中没有构造⽅法。

5.不能被static、final、synchronized、abstract和native修饰。

6.构造⽅法在初始化对象时⾃动执⾏,⼀般不能显式地直接调⽤.当同⼀个类存在多个构造⽅法时,java编译系统会⾃动按照初始化时最后⾯括号的参数个数以及参数类型来⾃动⼀⼀对应。

完成构造函数的调⽤。

7.构造⽅法分为两种:⽆参构造⽅法有参构造⽅法构造⽅法可以被重载。

没有参数的构造⽅法称为,与⼀般的⽅法⼀样,构造⽅法可以进⾏任何活动,但是经常将他设计为进⾏各种初始化活动,⽐如初始化对象的属性。

8.构造代码块: (1)作⽤:给对象进⾏初始化,对象⼀建⽴就执⾏,⽽且优先于构造函数执⾏ (2)构造代码块和构造函数的区别: 构造代码块是给所有不同对象的共性进⾏统⼀初始化,构造函数是给对应的对象进⾏初始化9.⼦类继承⽗类中, ***⼦类的实例化过程 ***构造⽅法不能被⼦类继承 ***⼦类创建对象时,会先去创建⽗类的对象。

默认是去调⽤⽗类的⽆参构造⽅法。

***⼦类构造⽅法中,第⼀⾏默认是super() ***为什么⼦类中第⼀⾏会默认有super() 因为他继承⽗类的成员使⽤,使⽤前这些成员必须初始化, ⽽他们是⽗类的成员,所以,必须通过⽗类进⾏初始化。

jav构造函数及相关知识

jav构造函数及相关知识

java 构造函数一般我们讲的“函数”就是“方法”;构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点。

(1)构造方法的方法名必须与类名相同。

(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

(5)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

java 构造函数的执行过程类初始化时构造函数调用顺序:(1)初始化对象的存储空间为零或null值;(2)调用父类构造函数;(3)按顺序分别调用类成员变量和实例成员变量的初始化表达式;class Dollar {Money m = new Money();Rmb r = new Rmb();public Dollar() {System.out.println("Dollar is construct!");}public static void main(String[] args) {new Dollar();}}class Money {public Money() {System.out.println("Money is construct!");}}class Rmb {public Rmb() {System.out.println("RMB is construct!");}}构造方法在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门方法:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void 也没有。

java idea中add constructor parameters -回复

java idea中add constructor parameters -回复

java idea中add constructor parameters -回复Java中的Idea是一种开发环境,它提供了丰富的功能和工具,方便开发者编写、调试和测试Java代码。

在Java中,构造函数是一种特殊的方法,用于创建和初始化一个对象。

本文将重点讨论在Idea中为构造函数添加参数。

一、构造函数概述构造函数是一种特殊的函数,它具有与类名相同的名称,并没有返回类型。

当创建对象时,构造函数会被调用,用于初始化对象的属性和状态。

二、为构造函数添加参数在Java中,构造函数可以接受一定数量的参数,用于初始化对象。

通过在构造函数的括号内添加参数,可以指定对象初始化时所需要的初始值。

1. 创建一个类首先,我们需要创建一个类来演示如何在构造函数中添加参数。

假设我们要创建一个名为Person的类,它具有姓名和年龄这两个属性。

javapublic class Person {private String name;private int age;构造函数public Person(String name, int age) { = name;this.age = age;}Getter 和Setter 方法public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}在上面的代码中,我们创建了一个Person类,并为构造函数添加了两个参数:name和age。

在构造函数中,我们使用this关键字引用到当前对象的属性,将传入的参数赋值给相应的属性。

2. 实例化对象在主程序中,我们可以通过调用构造函数来实例化Person类的对象。

我们可以传递适当的参数来初始化对象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

十二、java类的结构(属性、方法、构造函数)上一篇分析了什么是类,并例举了一些例子,这里在继续对类进行分析和讲解。

一、类的定义形式类定义的一般形式如下[类定义修饰符] class <类名>{ //类体[成员变量声明] [构造函数][成员方法]}前面说过,在描述java语法时,方括号中的内容都是可以省略掉的。

实际上任何程序设计相关语法都是如此,这是国际通行的标准。

那么,要定义一个最简单的类就是如下的写法:class Test{}这个类因为类体没有包含任何内容,所以什么也不干,同时如果直接调试该程序,可以编译,但是运行错误,提示错误信息如下:“错误: 在类Test 中找不到主方法, 请将主方法定义为: public static voidmain(String[] args)”。

为什么会出现这个错误呢?因为讲过前面,一个java程序或者说一个java项目,必须有一个主类(主类内容接下来会讲),主类必须有一个主方法,主方法就是程序的入口,即程序首先是从主类的主方法中开始运行的,所以运行该程序自然会提出错误信息。

二、类的定义解释1、类的定义:类的定义通过关键字class来实现,所定义的类名应符合标识符的规定。

类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample。

还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词。

2、类定义修饰符修饰符:修饰符可以省略,也可以是public, protected, private, static, final,其中public、protected , private三个最多只能出现其中之一,可以与static, finaf组合起来修饰属性。

3、成员变量声明成员变量是类的属性,声明的一般格式为:[变量修饰符] <成员变量类型> <成员变量名>变量修饰符:public、protected、private、和默认(frieddlly)。

4、构造函数一般我们讲的“函数”就是“方法”,构造函数是一个特殊的函数,虽然在类定义的过程中用方括号括起来,即我们可以不写构造函数,但是java系统会默认自动为每个类生成一个缺省的不带任何参数的构造函数,在创建对象时系统会调用缺省的构造函数。

如果程序中定义了构造函数,系统将不再提供该缺省的构造函数。

构造函数具有如下特点:(1)构造方法的方法名必须与类名相同,其它方法不能和类名相同。

(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

(4)构造方法不能由编程人员调用,而由系统调用。

(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

使用无参数构造函数的例子[java]view plaincopy1.<span style="font-size:18px;">class Test {2.<span style="white-space:pre"> </span>String name;3.<span style="white-space:pre"> </span>Test(){4.<span style="white-space:pre"> </span>name="韦小宝";5.<span style="white-space:pre"> </span>}6.<span style="white-space:pre"> </span>public static void main(String[] args){7.<span style="white-space:pre"> </span>Test t1=new Test();8.<span style="white-space:pre"> </span>System.out.println();9.<span style="white-space:pre"> </span>="康熙";10.<span style="white-space:pre"> </span>System.out.println();11.<span style="white-space:pre"> </span>}12.}13.</span>执行程序,输出结果如下:韦小宝康熙在程序中并没有对对象t1的name变量进行赋值,而打印输出 输出结果是“韦小宝”,此时Test类的构造函数中对name变量进行了初始化,输出的就是初始化的值;而对t1对象的name属性进行了赋值后,此时输出结果就是重新赋值后的值,即“康熙”。

使用有参数构造函数的例子[java]view plaincopy1.<span style="font-size:18px;">class Test {2. String name;3. Test(){4. name="韦小宝";5. }6. Test(String myName){=myName;8. }9.public static void main(String[] args){10. Test t1=new Test();11. System.out.println();12. Test t2=new Test("康熙");13. System.out.println();14. }15.}16.</span>执行程序,输出结果如下:韦小宝康熙5、成员方法成员方法定义的类的操作和行为,一般形式为:[方法修饰符] <方法返回值类型> <方法名>([<参数列表>]){方法体}成员方法修饰符主要有public、private、protected、final、static、abstract 和synchronized七种,前三种的访问权限、说明形式和含义与成员变量一致。

与成员变量类似,成员方法也分为实例方法和类方法。

如果方法定义中使用了static ,则该方法为类方法。

public static void main(String [] args)就是一个典型的类方法三、类的修饰符及其访问范围前面说了修饰符,但是没有说起含义,这里讲解一下常见的类访问修饰符:由于抽象类是它的所有子类的公共属性的集合,所以使用抽象类的一个优点就是可以充分利用这些公共属性来提高开发和维护程序的效率。

值得一提的是,面向对象技术是要用更接近于人类思维方式的方法来处理实际问题,抽象类的设立就是这种思想的具体体现之一,它是模仿人类的思维模式的产物。

2,最终类:如果一个类被final修饰符所修饰和限定,说明这个类不可能有子类。

被定义为final的类通常是一些有固定作用、用来完成某种标准功能的类。

如Java系统定义好的用来实现网络功能的InterAddress、Socket 等类都是final类。

abstract和final修饰符不能同时修饰一个类,因为abstract类自身没有具体对象,需要派生出子类后在创建子类的对象;而final类不可能有子类。

这样放在一起修饰就没有意义了。

3,有些类的修饰符也可以用来修饰类中的域或方法:(1) 域:是类和对象的静态属性,定义域的操作就是说明变量或创建对象的操作。

<1> 静态域:用static修饰符修饰的域是仅属于类的静态域。

静态域是类中每个对象共享的域。

他们是类的域,不属于任何一个类的具体对象。

是一个公共的存储单元,任何一个类的对象访问它时,取到的都是相同的数值。

<2> 静态初始化器:静态初始化器是由关键字static引导的一对大括号括起的语句组。

作用是:在加载时,初始化类的静态域。

与构造函数相同,他们都是用来完成初始化的工作,但是静态初始化器与构造函数有三点不同:①构造函数是对每个新创建的对象初始化,而静态初始化器是对类自身进行初始化。

②构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载到内存时由系统调用执行。

③不同于构造函数,静态初始化器不是方法,没有方法名、返回值和参数列表。

<3> 最终域:用final修饰的域,实际上就是Java中的常量。

用final修饰符说明常量时,需要注意以下几点:①需要说明常量的数据类型。

②需要同时指出常量的具体取值。

③因为所有类对象的常量成员,其数值都固定一致,为了节省空间,常量通常声明为static。

<4> 易失域:如果一个域被volatile修饰符所修饰,说明这个域可能同时被几个线程所控制和修改,即这个域不仅仅被当前程序所掌握,在运行过程中可能在其他未知的程序操作影响和改变该域的取值。

在使用当中应该特别注意。

通常,volatile用来修饰接受外部输入的域。

如表示当前时间的变量将系统的后台线程随时修改,以保证程序中取到的总是最新的当前系统时间,所以可以把它定义为易失域。

(2)方法:是类的动态属性,标志了类所具有的功能和操作。

小括号是方法的标志。

<1> 抽象方法:修饰符abstract修饰的抽象方法是一种仅有方法头,而没有具体的方法体和操作实现的方法。

使用抽象方法的目的是使所有的子类,对外都呈现一个相同名字的方法,是一个统一的接口。

所有的抽象方法,都必须存在于抽象类之中。

<2> 静态方法:用static修饰符修饰的方法,是属于整个类的类方法,不用的是对象或实例的方法。

调用这种方法时,应该使用类名作前缀;这种方法在内存中的代码段将随着类的定义而分配和装载,不被任何一个对象专有;只能处理属于整个类的成员变量。

<3> 最终方法:用final修饰符修饰的类方法。

相关文档
最新文档