如何编写java类

 本文向大家介绍如何创建Java类和创建Java类的基本语法,通过一个例子来向大家介绍类的主要概念。

Public class Stack

{

private Vector items;

publicd Stack()

{

items = new Vector(10);

}

public Object push(Object item)

{

items.addElement(item);

returen item;

}

public synchronized Object pop()

{

int len = items.size();

Object obj = null;

if(len == 0)

throw new EmptStackException();

obj = items.elementAt(len - 1);

items.removeElementAt(len - 1);

return obj;

}

public boolean isEmpty()

{

if(items.size() == 0)

return true;

else

return false;

}

}

上面的例子定义了一个类叫作Stack,在这个类中定义了一个实例变量items,定义了一个构造器,定义了三个方法,关于实例变量,构造器和方法我们会再后面一个一个的给大家进行讲解。

类的定义:

一个类在使用前必须要进行定义,当然Java本身提供了许多类,你可以直接拿过来使用,就象C语言中预定义的许多变量一样,不用你自己定义了。类声明的语法主要包括两个部分,一个是类的声明,就是上面例子中的第一行语句,用来声明类的名称等信息;下面用一对大括号括起来的部分称为类体,用来定义类的实例对象,构造器和方法等。

类的声明:

下面我们给出类声明的语法,

public class is publicly accessible

abstract class cannot be instantiated

final class cannot be subclassed

class NameOfClass Name of the Class

extends Super Superclass of the class

implements Interfaces Interfaces implemented by the class

{

ClassBody

}


上面的语法中,大括号前面的内容就是类声明的基本语法,其中Class NameOfClass是类声明中最主要的部分,它定义了类的名称,是必不可少的,Class是Java的关键字,NameOfClass是类的真实名称。public,abstract,final可看成是一组,在使用的时候只能使用其中一个,他们必须放在类的名称前面,如果使用public说明定义的这个类可以被在同一个封装中的其他类所使用和访问,如果使用abstract说明定义的这个类是一个抽象类,不能用此类来创建类的实例,也就是对象,如果使用final说明定义的类是一个终极类,不能在用这个类来定义子类了。extends Super和implements Interfaces可以看成一组,在使用的时候只能使用其中的一个,如果使用extends Super说明现在定义的类是一个超类的子类,如果使用implements Interfaces说明该类使用了Interfaces接口,这两个组成部分体现了类的继承特性。

类定义中的类体部分主要包含三个成分:实例变量,构造器和方法,这三个成分称为类的成员。其中实例变量用来保存类的状态,构造器用来对类的实例进行初始化,方法将用来赋予类强大的能力,来完成一些工作。

下面我们就组成类体的三个成分分别进行说明:

构造器:

构造器的作用就是对类的实例进行初始化。构造器的名字必须和类名称相同。比如例子中展示的类Stack的构造器也叫Stack。Java允许类可以有多个构造器,但所有的构造器名称都要相同,要和类名称相同,但每个构造器的参数数量和类型是不同。编译器会根据参数的数目和类型来准确的判断应该使用哪个构造器来对类的实例进行初始化。一般的情况下,构造器主要就是对类的实例变量进行初始化。编译器会根据你调用构造器时所使用的参数的个数和类型来选择准确的构造器。

当你编写一个类的时候,你也可以不给类定义构造器,此时Java的运行环境会自动使用默认的构造器来对类实例进行初始化。

实例变量:

在上面的例子中我们使用了一个实例变量:

private Vector items;

实例变量用来描述类的状态。注意:为了声明实例变量我们应该将上面这条语句方法类体中,但不能放在类的方法声明中。在方法中声明的变量是方法的本地变量,和我们现在提到的实例变量是不一样的。

accessLevel Indicates the access level for this member

static Declares a class member

final Indicates that it is constant

transinet This variable is transient

volatile This variable is volatile

type name The type and name of the variable


上面就是声明一个实例变量的语法成分,其中type name是声明一个实例变量必须要有的,type用来说明实例变量的数据类型,也就说明该变量可以用来存放的值的类型,name是实例变量的名称,变量名可以由任何合法的字符组成,首字符应该是一个字母。在一个类中,实例变量应该是唯一的,不能存在两个名称相同的实例变量,但你可以在该类的子类中重新定义一个实例变量和你的超类的实例变量名称相同,这时,子类的实例变量会覆盖掉超类的实例变量,另外实例变量的名称可以和类中的某个方法的名称相同。

除了type name之外,下面我们对其他的成分进行一下说明:

accessLevel

你可以使用这个修改符来控制其他类对该实例变量的访问方式,不同的访问方式包括:public,protected,package,和private。


static

声明一个类变量,这个变量在不声明类实例的情况下就可以使用,使用的方式是:对象名.变量名

final

使用这个修改符实际上上是定义了常量,他的值是不能被改变的。所以你不能在程序中去修改他的值,如果你试图这样做的话,结果将是在编译的时候发生错误。


transient

这中控制方式实际上不是Java语言主要的控制方式,主要是在serialization对象中使用。


volatile

这个修改符用来通知编译器不要在编译的时候对实例变量进行优化,这是一个Java的高级特性,一般很少用到他。

方法:

向你所知道的那样,对象有一个能力就是去执行一些方法,其他类的对象可以通过调用该类的方法来让该类执行一定的操作,下面我们就来看看如何在你的程序中给类填加方法。

public Object push(Objec item)

{

items.addElement(item);

return item;

}


上面的例子定义了一个方法,通过这个例子我们可以分析一下,一个方法的定义应该包括两大部分,一个就是方法声明,一个是方法体。

方法声明用来定义类的各种性质,例如访问级别,返回类型,名称和参数等等。

accessLevel Access level for this method

static This is a class method

abstract This method is not implemented

final Method cannot be overridden

native Method implemented in another language

synchronized Method requires a monitor to run

returnType methodname The return type and method name

(paramlist) The list of arguments

throws exceptions The exceptions thrown by this method


上面就是声明一个方法的语法成分,一样其中rutuenType mehtodname是在声明一个方法的时候必须要有的,其中methodname是方法的名称。returntype是方法的返回值类型。

声明一个方法的语法中其他的成分说明如下:

accessLevel:

和声明一个实例变量时是一样的,用来控制其他类访问该方法的方式,其中包括public,protected,package,和private。


static:

用来声明一个类方法,该方法可以在不声明对象实例的情况下直接使用,使用的语法是:对象名.方法名


abstract:

用来声明一个抽象方法,该方法不能通过对象实例来直接使用,因为该方法一定是一个抽象类中的方法。


final:

声明一个终极类方法,就是说在该类的子类中不能用同名的方法来覆盖本方法。


native:

如果你有一些使用其他编程语言编写的函数,想在Java程序中使用他们,你可以使用native关键字来声明类中的某个方法不是用java编写的,这样你就可以将以往的工作成果包含到你的Java程序中。


synchronized:

当多个方法可能同时对同一个数据进行操作时,就需要对这些方法进行同步,确保每个方法的操作不会影响到其他的方法,这时你就可以使用该方法来完成。


(paramlist)

这是方法的参数,用来给方法传递信息。


[throws exceptions]

当你的程序在执行过程中可能会出现一些问题或错误的时候,你应该进行违例处理,这就是本成分的功能,具体的违例处理我们还会在其他的文章中进行说明。


在方法体中,你可以编写任何条数的语句。另外我们还要说明三个概念:

this:

在类的方法中,你可以使用this来表示对本类自身的调用,比如你在方法中需要使用到该类的某个实例变量,你可以通过this.变量名来使用。


super:

如果你的类是一个超类的子类,你可以通过在该类的方法中使用super来调用超类的方法和实例变量等。


本地变量:

你可以在方法体中声明任意数量的本地变量。这些变量是本地变量,他们的作用域只限于本方法内,当方法结束的时候,该变量的生命期就结束了。


好,最后我们再对private,public,protected,package说明一下:


在类中,声明方法和实例变量的时候都可以通过上面的四个修改符来控制他们可能被其他类访问的方式,其中:


private:

将限制方法和实例变量只能被本方法中的其他方法所访问。


protected:

则允许类的方法和实例变量可以被该类,子类和在一个Package中的其他方法所访问


public:

允许任何类来访问。


package:

则限制只有该类和在一个Package中的其他类来访问。

ok,我们通过上面的讲解,基本说明了定义一个类的基本语法成分,大家如果对这一部分的内容理解之后,我想你就可以自己利用前面提到的Java基本语法和类的基本语法来编写自己的类了!

转载于:https://www.cnblogs.com/liuzhuqing/archive/2011/01/01/7481125.html

### 回答1: 你可以使用Java语言编写工具,首先定义一个,然后在中定义静态方法,这些方法可以被其他直接调用。在工具中,你可以实现一些常用的功能,例如字符串处理、日期处理、文件操作等。同时,你也可以在工具中定义一些常量和枚举型,以便在其他中使用。编写Java工具需要熟悉Java语言的基本语法和面向对象编程的思想,同时需要考虑代码的可读性和可维护性。 ### 回答2: 编写Java工具的步骤如下: 1. 确定工具的目的和功能:首先要明确工具的用途和需要实现的功能,例如日期格式化、文件操作、字符串处理等。 2. 设计工具的结构和方法:根据工具的目的和功能,设计的结构和需要的方法。尽量保持的简洁和高内聚,每个方法应该只完成一个具体的功能。 3. 编写工具的成员变量和方法:在选择适当的访问修饰符后,编写的成员变量和方法。成员变量可以根据需要来设置,方法应该明确输入参数和返回值的型。 4. 实现工具的具体功能:根据设计好的方法,逐个实现工具中的具体功能。注意遵循面向对象的封装、继承和多态原则,合理使用控制流程结构和循环结构。 5. 进行单元测试和调试:完成工具编写后,可以编写单元测试用例来验证工具的方法是否正确。根据测试结果,进行必要的调试和修正。 6. 文档化工具编写工具的文档注释,包括的描述、方法的功能和输入输出说明。这样可以方便其他开发人员使用工具。 7. 将工具打包或发布:可以将工具打包成Java库,方便其他项目引用。如果需要分享给其他人使用,可以发布到开源平台或共享代码仓库。 编写Java工具时需要注意的是,要保持代码的可读性和可维护性,遵循Java编码规范,命名清晰且符合规范。另外,可以使用常用的开源工具库或框架来辅助开发,提高效率和质量。同时也要注意工具的兼容性和稳定性,尽量处理边界条件和异常情况,增加代码的健壮性。最后,及时进行代码重构和优化,使工具的性能更好。 ### 回答3: 编写Java工具需要遵循一定的规范和步骤。下面是编写Java工具的一般步骤: 1. 定义:使用`public`修饰符定义一个公共,并使用合适的名。 2. 添加方法:根据工具的功能需求,添加相应的方法。方法要使用`public static`修饰符,以便在其他中直接调用,而不需要实例化该工具。 3. 设置私有构造函数:通过将构造函数设置为私有,可以防止该工具被实例化。可以使用`private`修饰符来实现。 4. 编写方法实现:在方法体内编写具体的实现代码。根据工具的功能需求,可能需要使用到循环、条件判断、异常处理等语法特性。 5. 添加注释:为工具和方法添加注释,解释其作用和使用方法。这样其他开发人员在使用该工具时可以更容易理解和应用。 6. 测试工具编写测试用例来验证工具的功能是否正常。可以使用JUnit等单元测试框架来进行测试。 7. 优化和维护:随着项目的发展和需求变化,可能需要对工具进行优化和维护。需要根据实际情况进行相关的改进。 编写Java工具时,需要考虑代码的可复用性、可扩展性和易读性。遵循面向对象的编程原则,使得工具的功能尽量独立、模块化,而且能够适应不同的场景需求。编写好的工具可以大大提高开发的效率,减少代码的冗余和重复编写的问题。同时,适当地使用命名规范、代码风格规范等,也可以提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值