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

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

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不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026春节习俗大全
2026春节习俗大全

本专题整合了2026春节习俗大全,阅读专题下面的文章了解更多详细内容。

68

2026.02.11

Yandex网页版官方入口使用指南_国际版与俄罗斯版访问方法解析
Yandex网页版官方入口使用指南_国际版与俄罗斯版访问方法解析

本专题全面整理了Yandex搜索引擎的官方入口信息,涵盖国际版与俄罗斯版官网访问方式、网页版直达入口及免登录使用说明,帮助用户快速、安全地进入Yandex官网,高效使用其搜索与相关服务。

200

2026.02.11

虫虫漫画网页版入口与免费阅读指南_正版漫画全集在线查看方法
虫虫漫画网页版入口与免费阅读指南_正版漫画全集在线查看方法

本专题系统整理了虫虫漫画官网及网页版最新入口,涵盖免登录观看、正版漫画全集在线阅读方式,并汇总稳定可用的访问渠道,帮助用户快速找到虫虫漫画官方页面,轻松在线阅读各类热门漫画内容。

40

2026.02.11

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

4

2026.02.11

Rust异步编程与Tokio运行时实战
Rust异步编程与Tokio运行时实战

本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。

1

2026.02.11

Spring Boot企业级开发与MyBatis Plus实战
Spring Boot企业级开发与MyBatis Plus实战

本专题面向 Java 后端开发者,系统讲解如何基于 Spring Boot 与 MyBatis Plus 构建高效、规范的企业级应用。内容涵盖项目架构设计、数据访问层封装、通用 CRUD 实现、分页与条件查询、代码生成器以及常见性能优化方案。通过完整实战案例,帮助开发者提升后端开发效率,减少重复代码,快速交付稳定可维护的业务系统。

6

2026.02.11

包子漫画网页版入口与全集阅读指南_正版免费漫画快速访问方法
包子漫画网页版入口与全集阅读指南_正版免费漫画快速访问方法

本专题汇总了包子漫画官网和网页版入口,提供最新章节抢先看方法、正版免费阅读指南,以及稳定访问方式,帮助用户快速直达包子漫画页面,无广告畅享全集漫画内容。

159

2026.02.10

MC.JS网页版快速畅玩指南_MC.JS官网在线入口及免安装体验方法
MC.JS网页版快速畅玩指南_MC.JS官网在线入口及免安装体验方法

本专题汇总了MC.JS官网入口和网页版快速畅玩方法,提供免安装访问、不同版本(1.8.8、1.12.8)在线体验指南,以及正版网页端操作说明,帮助玩家轻松进入MC.JS世界,实现即时畅玩与高效体验。

89

2026.02.10

谷歌邮箱网页版登录与注册全指南_Gmail账号快速访问与安全操作教程
谷歌邮箱网页版登录与注册全指南_Gmail账号快速访问与安全操作教程

本专题汇总了谷歌邮箱网页版的最新登录入口和注册方法,详细提供官方账号快速访问方式、网页版操作教程及安全登录技巧,帮助用户轻松管理Gmail邮箱账户,实现高效、安全的邮箱使用体验。

78

2026.02.10

热门下载

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

精品课程

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

共23课时 | 3.5万人学习

C# 教程
C# 教程

共94课时 | 9.2万人学习

Java 教程
Java 教程

共578课时 | 63.9万人学习

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

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