首页 > 编程知识 正文

gradle菜鸟教程,java菜鸟

时间:2023-05-04 21:46:58 阅读:49650 作者:2099

Java方法

前面的几章经常使用System.out.println (),那是什么呢?

println ) )是方法(Method ),System是系统类(Class ),out是标准输出对象(Object )。 此语句的用法是调用系统类System的标准输出对象out的方法println ()。

那么什么是方法呢?

Java方法是语句的集合,它们一起执行功能。 方法是解决某种问题步骤的有序组合

方法包含在类或对象中

方法是以编程方式创建的,并在其他地方引用

方法的定义

一般来说,定义方法包括以下语法: 修饰符返回值类型方法名称(参数类型参数名称)…方法主体return返回值; }

方法包括方法头和方法体。 以下是方法的所有部分: 修饰符:修饰符。 这是可选的,它教编译器如何调用方法。 定义了此方法的访问类型。

返回类型:方法可能返回值。 returnValueType是方法返回值的数据类型。 也有执行必要操作的方法,但没有返回值。 在这种情况下,返回值类型是关键字void。

方法名称:方法的实际名称。 方法名称和参数表共同构成方法签名。

参数类型:参数就像占位符。 调用方法时,将值传递给参数。 此值称为实参或变量。 参数列表是方法的参数类型、顺序和参数数量。 参数是可选的。 方法可以不包含参数。

方法主体)方法主体包含特定的语句,用于定义该方法的功能。

例如,公共静态集成(int birthday )…}

可以指定多个参数。 staticfloatinterest (浮动印刷,intyear )……}

注:在其他语言中,方法是指过程和函数。 返回非void类型返回值的方法称为函数。 返回void类型返回值的方法称为过程。

实例

以下方法包含两个参数num1和num2,它们返回两个参数的最大值。 /**个整数变量数据的较大值*/publicstaticintmax(intnum1,intnum2) {intresult; if(num1num2) result=num1; elseresult=num2; 返回结果; }

方法调用

Java支持两种调用方法,可以根据方法是否返回值进行选择。

当程序调用方法时,程序的控制权将传递给调用的方法。 在执行所调用方法的返回语句或到达方法主体的右括号时将控制权返回给程序。

方法返回值时,将方法调用视为常规值。 例如,int larger=max (30,40 );

如果方法的返回值为void,则方法调用必须是语句。 例如,方法println返回void。 下一个调用是语句。 system.out.println (' welcometojava!' );

样品

以下示例说明如何定义和调用方法。 publicclassTestMax{/**主方法*/publicstaticvoidmain (字符串[ ] args ) {inti=5; intj=2; intk=max(I,j ); system.out.println (' themaximumbetween ' I ' and ' j ' is ' k ); }/**个整数变量的较大值*/publicstaticintmax(intnum1,intnum2) {intresult; if(num1num2) result=num1; elseresult=num2; 返回结果; }

上述实例的编译运行结果是Themaximum between5and2is5

此程序包含main和max方法。 Main方法由JVM调用。 除此之外,Main方法与其他方法没有区别。

main方法的开头保持不变。 使用修饰符public和static返回void类型的值,如示例所示。 方法名称为main,带一个String[]类型参数。 String[]表示参数是字符串数组。

void关键字

本节介绍如何声明和调用void方法。

下面的示例声明一个名为printGrade的方法,并调用该方法以打印指定的分数:

示例publicclasstestvoidmethod { publicstaticvoidmain (字符串[ ] args )打印等级) 78.5; } publicstaticvoidprintgrade (doublescore ) if ) score=90.0 (system.out.println ) ) a ); }elseif(score=80.0 ) system.out.println ) ) b ); }elseif(score=70.0 ) system.out.println ) ) c ); }elseif(score=60.0 ) {System.out.prin

tln('D');}else{System.out.println('F');}}}

以上实例编译运行结果如下:C

这里printGrade方法是一个void类型方法,它不返回值。

一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。

通过值传递参数

调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。

例如,下面的方法连续n次打印一个消息:publicstaticvoidnPrintln(Stringmessage,intn){for(inti=0;in;i++)System.out.println(message);}

示例

下面的例子演示按值传递的效果。

该程序创建一个方法,该方法用于交换两个变量。publicclassTestPassByValue{publicstaticvoidmain(String[]args){intnum1=1;intnum2=2;System.out.println('Before swap method, num1 is '+num1+' and num2 is '+num2);// 调用swap方法swap(num1,num2);System.out.println('After swap method, num1 is '+num1+' and num2 is '+num2);}/** 交换两个变量的方法 */publicstaticvoidswap(intn1,intn2){System.out.println('tInside the swap method');System.out.println('ttBefore swapping n1 is '+n1+' n2 is '+n2);// 交换 n1 与 n2的值inttemp=n1;n1=n2;n2=temp;System.out.println('ttAfter swapping n1 is '+n1+' n2 is '+n2);}}

以上实例编译运行结果如下:Beforeswap method,num1is1andnum2is2Insidethe swap methodBeforeswapping n1is1n2is2Afterswapping n1is2n2is1Afterswap method,num1is1andnum2is2

传递两个参数调用swap方法。有趣的是,方法被调用后,实参的值并没有改变。

方法的重载

上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢?

解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:publicstaticdoublemax(doublenum1,doublenum2){if(num1>num2)returnnum1;elsereturnnum2;}

如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用;

如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载;

就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。

Java编译器根据方法签名判断哪个方法应该被调用。

方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。

重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。

变量作用域

变量的范围是程序中该变量可以被引用的部分。

方法内定义的变量被称为局部变量。

局部变量的作用范围从声明开始,直到包含它的块结束。

局部变量必须声明才可以使用。

方法的参数范围涵盖整个方法。参数实际上是一个局部变量。

for循环的初始化部分声明的变量,其作用范围在整个循环。

但循环体内声明的变量其适用范围是从它声明到循环体结束。它包含如下所示的变量声明:

你可以在一个方法里,不同的非嵌套块中多次声明一个具有相同的名称局部变量,但你不能在嵌套块内两次声明局部变量。

命令行参数的使用

有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。

命令行参数是在执行程序时候紧跟在程序名字后面的信息。

实例

下面的程序打印所有的命令行参数:publicclassCommandLine{publicstaticvoidmain(Stringargs[]){for(inti=0;iargs.length;i++){System.out.println('args['+i+']: '+args[i]);}}}

如下所示,运行这个程序:javaCommandLinethisisa command line200-100

运行结果如下:args[0]:thisargs[1]:isargs[2]:aargs[3]:commandargs[4]:lineargs[5]:200args[6]:-100

构造方法

当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。

通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。

不管你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个默认构造方法,它把所有成员初始化为0。

一旦你定义了自己的构造方法,默认构造方法就会失效。

实例

下面是一个使用构造方法的例子:// 一个简单的构造函数classMyClass{intx;// 以下是构造函数MyClass(){x=10;}}

你可以像下面这样调用构造方法来初始化一个对象:publicclassConsDemo{publicstaticvoidmain(Stringargs[]){MyClasst1=newMyClass();MyClasst2=newMyClass();System.out.println(t1.x+' '+t2.x);}}

大多时候需要一个有参数的构造方法。

实例

下面是一个使用构造方法的例子:// 一个简单的构造函数classMyClass{intx;// 以下是构造函数MyClass(inti){x=i;}}

你可以像下面这样调用构造方法来初始化一个对象:publicclassConsDemo{publicstaticvoidmain(Stringargs[]){MyClasst1=newMyClass(10);MyClasst2=newMyClass(20);System.out.println(t1.x+' '+t2.x);}}

运行结果如下:1020

可变参数

JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。

方法的可变参数的声明如下所示:typeName...parameterName

在方法声明中,在指定参数类型后加一个省略号(...) 。

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

实例publicclassVarargsDemo{publicstaticvoidmain(Stringargs[]){// 调用可变参数的方法printMax(34,3,3,2,56.5);printMax(newdouble[]{1,2,3});}publicstaticvoidprintMax(double...numbers){if(numbers.length==0){System.out.println('No argument passed');return;}doubleresult=numbers[0];for(inti=1;inumbers.length;i++)if(numbers[i]>result)result=numbers[i];System.out.println('The max value is '+result);}}

以上实例编译运行结果如下:Themax valueis56.5Themax valueis3.0

finalize() 方法

Java允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做finalize( ),它用来清除回收对象。

例如,你可以使用finalize()来确保一个对象打开的文件被关闭了。

在finalize()方法里,你必须指定在对象销毁时候要执行的操作。

finalize()一般格式是:protectedvoidfinalize(){// 在这里终结代码}

关键字protected是一个限定符,它确保finalize() 方法不会被该类以外的代码调用。

当然,Java的内存回收可以由JVM来自动完成。如果你手动使用,则可以使用上面的方法。

实例publicclassFinalizationDemo{publicstaticvoidmain(String[]args){Cakec1=newCake(1);Cakec2=newCake(2);Cakec3=newCake(3);c2=c3=null;System.gc();//调用Java垃圾收集器}}classCakeextendsObject{privateintid;publicCake(intid){this.id=id;System.out.println('Cake Object '+id+'is created');}protectedvoidfinalize()throwsjava.lang.Throwable{super.finalize();System.out.println('Cake Object '+id+'is disposed');}}

运行以上代码,输出结果如下:C:1>javaFinalizationDemoCakeObject1iscreatedCakeObject2iscreatedCakeObject3iscreatedCakeObject3isdisposedCakeObject2isdisposed

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。