0

0

【卓越教程】Java 方法(2)

黄舟

黄舟

发布时间:2017-02-07 10:26:06

|

1440人浏览过

|

来源于php中文网

原创

void 关键字本节说明如何声明和调用一个void方法。 下面的例子声明了一个名为printgrade的方法,并且调用它来打印给定的分数。

示例

public class TestVoidMethod { 
public static void main(String[] args) 
{ printGrade(78.5); } 
public static void printGrade(double score) { 
if (score >= 90.0) { System.out.println('A'); } 
else if (score >= 80.0) { System.out.println('B'); } 
else if (score >= 70.0) { System.out.println('C'); } 
else if (score >= 60.0) { System.out.println('D'); } 
else { System.out.println('F'); } 
}}

以上实例编译运行结果如下: C 这里printGrade方法是一个void类型方法,它不返回值。 一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。 通过值传递参数 调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。 例如,下面的方法连续n次打印一个消息:

public static void nPrintln(String message, int n) 
{ 
for (int i = 0; i < n; i++) System.out.println(message);
}

示例 下面的例子演示按值传递的效果。 该程序创建一个方法,该方法用于交换两个变量。

public class TestPassByValue { 
public static void main(String[] args) { 
int num1 = 1; 
int num2 = 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); } 
/** 交换两个变量的方法 */
 public static void swap(int n1, int n2) { 
 System.out.println("\tInside the swap method"); 
 System.out.println("\t\tBefore swapping n1 is " + n1 + " n2 is " + n2); 
 // 交换 n1 与 n2的值 
 int temp = n1; 
 n1 = n2; 
 n2 = temp; 
 System.out.println("\t\tAfter swapping n1 is " + n1 + " n2 is " + n2); 
 }}

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

立即学习Java免费学习笔记(深入)”;

 Before swap method, num1 is 1 and num2 is 2 Inside the swap method Before swapping n1 is 1 n2 is 2 After 
 swapping n1 is 2 n2 is 1After swap method, num1 is 1 and num2 is 2

传递两个参数调用swap方法。有趣的是,方法被调用后,实参的值并没有改变。 方法的重载 上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢 解决方法是创建另一个有相同名字但参数不同的方法,如下面代码所示:

 public static double max(double num1, double num2) { if (num1 > num2) return num1; else return num2;}

如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用; 如果传递的事double型参数,则double类型的max方法体会被调用,这叫做方法重载; 就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。 Java编译器根据方法签名判断哪个方法应该被调用。 方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。 重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。

变量作用域变量的范围是程序中该变量可以被引用的部分。 方法内定义的变量被称为局部变量。 局部变量的作用范围从声明开始,直到包含它的块结束。 局部变量必须声明才可以使用。 方法的参数范围涵盖整个方法。参数实际上是一个局部变量。 for循环的初始化部分声明的变量,其作用范围在整个循环。 但循环体内声明的变量其适用范围是从它声明到循环体结束。它包含如下所示的变量声明: 你可以在一个方法里,不同的非嵌套块中多次声明一个具有相同的名称局部变量,但你不能在嵌套块内两次声明局部变量。命令行参数的使用 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。 命令行参数是在执行程序时候紧跟在程序名字后面的信息。

实例 下面的程序打印所有的命令行参数:

public class CommandLine { public static void main(String args[]){
for(int i=0; i<args.length; i++){
System.out.println("args[" + i + "]: " +
args[i]);

如下所示,运行这个程序:

java CommandLine this is a command line 200 -100

运行结果如下:

args[0]: thisargs[1]: isargs[2]: a
args[3]: command
args[4]: line
args[5]: 200args[6]: -100

实例

下面是一个使用构造方法的例子:

m18麦考林整站 for Ecshop
m18麦考林整站 for Ecshop

m18麦考林整站 for Ecshop v2.7.3 安装方法: 1,解压rar包上传到网站根目录 2,导入sql数据库文件,到你的数据库里,可以phpmyadmin等软件 3,修改data里config.php里面的数据库 用户名 密码等信息 为你自己的数据库信息 4,安装完毕之后的后台用户名密码为: 后台地址:域名/admin 用户名:admin 密码:admin123 模板使用教程: htt

下载
// 一个简单的构造函数class MyClass {
int x;
// 以下是构造函数
MyClass() {
x = 10;
}}

你可以像下面这样调用构造方法来初始化一个对象:

public class ConsDemo { 
public static void main(String args[]) { 
MyClass t1 = new MyClass(); 
MyClass t2 = new MyClass(); 
System.out.println(t1.x + " " + t2.x); 
}
}

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

实例 下面是一个使用构造方法的例子:

 // 一个简单的构造函数
 class MyClass { 
 int x; // 以下是构造函数 
 MyClass(int i ) 
 { 
 x = i; 
 }
 }

你可以像下面这样调用构造方法来初始化一个对象:

 public class ConsDemo { 
 public static void main(String args[]) { 
 MyClass t1 = new MyClass( 10 ); 
 MyClass t2 = new MyClass( 20 ); 
 System.out.println(t1.x + " " + t2.x); }}

运行结果如下: 10 20

可变参数

JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。 方法的可变参数的声明如下所示: typeName... parameterName 在方法声明中,在指定参数类型后加一个省略号(...) 。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

实例

public class VarargsDemo { 
public static void main(String args[]) { 
// 调用可变参数的方法 
printMax(34, 3, 3, 2, 56.5); 
printMax(new double[]{1, 2, 3}); }
public static void printMax( double... numbers) { 
if (numbers.length == 0) { System.out.println("No argument passed"); return; }
double result = numbers[0]; 
for (int i = 1; i < numbers.length; i++) 
if (numbers[i] > result) 
result = numbers[i]; 
System.out.println("The max value is " + result); 
}
}

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

The max value is 56.5The max value is 3.0

finalize() 方法Java允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做finalize( ),它用来清除回收对象。 例如,你可以使用finalize()来确保一个对象打开的文件被关闭了。 在finalize()方法里,你必须指定在对象销毁时候要执行的操作。 finalize()一般格式是: protected void finalize(){ // 在这里终结代码} 关键字protected是一个限定符,它确保finalize() 方法不会被该类以外的代码调用。 当然,Java的内存回收可以由JVM来自动完成。如果你手动使用,则可以使用上面的方法

实例

public class FinalizationDemo { 
public static void main(String[] args) { 
Cake c1 = new Cake(1); 
Cake c2 = new Cake(2); 
Cake c3 = new Cake(3); 
c2 = c3 = null; 
System.gc(); //调用Java垃圾收集器 
} 
} 
class Cake extends Object { 
private int id; 
public Cake(int id) { 
this.id = id; 
System.out.println("Cake Object " + id + "is created"); 
} 
protected void finalize() throws java.lang.Throwable { super.finalize(); 
System.out.println("Cake Object " + id + "is disposed"); 
} 
}

运行以上代码,输出结果如下:

 C:\1>java FinalizationDemo Cake Object 1is created Cake Object 2is created Cake Object 3is created Cake Object 3is disposed Cake Object 2is disposed

以上就是【卓越教程】Java 方法(2)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
苹果官网入口与在线访问指南_中国站点快速直达与iPhone查看方法
苹果官网入口与在线访问指南_中国站点快速直达与iPhone查看方法

本专题汇总苹果官网最新可用入口及中国站点访问方式,涵盖官网直达链接、iPhone官方页面查看方法与常见访问说明,帮助用户快速进入苹果官方网站,便捷了解产品信息与官方服务。

4

2026.02.24

Asianfanfics官网入口与访问指南_AFF官方平台最新登录地址
Asianfanfics官网入口与访问指南_AFF官方平台最新登录地址

本专题系统整理Asianfanfics(AFF)官方网站最新可用入口,涵盖官方平台最新直达地址、官网登录方式及中文访问指引,帮助用户快速、安全地进入AFF平台浏览与使用相关内容。

9

2026.02.24

Go分布式服务治理与链路追踪实践
Go分布式服务治理与链路追踪实践

本专题围绕 Go 语言在分布式系统中的服务治理实践展开,系统讲解服务注册与发现、配置中心、限流熔断、灰度发布以及分布式链路追踪方案。通过完整项目示例,帮助开发者构建可观测性完善、稳定性高、易扩展的 Go 微服务架构体系,提升线上系统问题定位与运维效率。

1

2026.02.24

Python自动化测试与持续集成实战
Python自动化测试与持续集成实战

本专题聚焦 Python 在自动化测试与持续集成中的工程化实践,系统讲解测试框架选型、测试用例设计、接口自动化、测试数据管理及测试报告生成。结合 CI/CD 流水线场景,讲解如何将自动化测试融入持续集成流程,实现代码提交即自动测试,提升项目交付质量与团队协作效率。

0

2026.02.24

Java高并发系统设计与性能调优
Java高并发系统设计与性能调优

本专题围绕 Java 在高并发业务场景下的系统设计与性能调优展开,系统讲解线程模型、并发容器、锁机制、异步编程及 JVM 性能调优思路。结合真实高并发业务场景,深入分析接口限流、线程池配置、热点资源优化与系统稳定性保障方案,帮助开发者构建高性能、高可用的 Java 后端系统。

5

2026.02.24

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

1257

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

402

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

252

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

39

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3.9万人学习

C# 教程
C# 教程

共94课时 | 10.1万人学习

Java 教程
Java 教程

共578课时 | 71.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号