方法操作实力与定义

本文通过一系列Java实例详细介绍了方法重载、输出数组元素、方法覆盖、instanceof关键字、break和continue关键字、标签使用、enum与switch语句、枚举构造函数及方法、for和foreach循环以及Varargs可变参数的使用。这些实例涵盖了基本的Java编程概念和技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 实例 - 方法重载

先来看下方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 具体说明如下:

  • 方法名相同
  • 方法的参数类型,参数个不一样
  • 方法的返回类型可以不相同
  • 方法的修饰符可以不相同
  • main 方法也可以被重载

以下实例演示了如何重载 MyClass 类的 info 方法:

class MyClass {

int height;

MyClass() {

System.out.println("无参数构造函数");

height = 4;

}

MyClass(int i) {

System.out.println("房子高度为 " + i + " 米");

height = i;

}

void info() {

System.out.println("房子高度为 " + height + " 米");

}

void info(String s) {

System.out.println(s + ": 房子高度为 " + height + " 米");

}

}

public class MainClass {

public static void main(String[] args) {

MyClass t = new MyClass(3); t.info();

t.info("重载方法"); //重载构造函数 new MyClass(); } }

以上代码运行输出结果为:

房子高度为 3 米
房子高度为 3 米
重载方法: 房子高度为 3 米
无参数构造函数

Java 实例 - 输出数组元素

以下实例演示了如何通过重载 MainClass 类的 printArray 方法输出不同类型(整型, 双精度及字符型)的数组:

public class MainClass {

public static void printArray(Integer[] inputArray) {

for (Integer element : inputArray){

System.out.printf("%s ", element);

System.out.println();

}

}

public static void printArray(Double[] inputArray) {

for (Double element : inputArray){

System.out.printf("%s ", element); System.out.println();

}

}

public static void printArray(Character[] inputArray) {

for (Character element : inputArray){

System.out.printf("%s ", element); System.out.println();

}

}

public static void main(String args[]) {

Integer[] integerArray = { 1, 2, 3, 4, 5, 6 };

Double[] doubleArray = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 };

Character[] characterArray = { 'H', 'E', 'L', 'L', 'O' };

System.out.println("输出整型数组:");

printArray(integerArray); System.out.println("\n输出双精度型数组:");

printArray(doubleArray); System.out.println("\n输出字符型数组:");

printArray(characterArray);

}

}

以上代码运行输出结果为:

输出整型数组:
1 
2 
3 
4 
5 
6 

输出双精度型数组:
1.1 
2.2 
3.3 
4.4 
5.5 
6.6 
7.7 

输出字符型数组:
H 
E 
L 
L 
O 

Java 实例 - 方法覆盖

我们来看下 Java 方法覆盖的实现。

方法重载与方法覆盖区别如下:

  • 方法重载(Overloading):如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。
  • 方法覆盖(Overriding):如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。

以下实例演示了 Java 方法覆盖(Overriding)代码的实现:

public class Findareas{ public static void main (String []agrs){

Figure f= new Figure(10 , 10);

Rectangle r= new Rectangle(9 , 5);

Figure figref;

figref=f;

System.out.println("Area is :"+figref.area());

figref=r;

System.out.println("Area is :"+figref.area());

}

}

class Figure{ double dim1; double dim2; Figure(double a , double b) {

dim1=a; dim2=b;

}

Double area() {

System.out.println("Inside area for figure.");

return(dim1*dim2);

}

}

class Rectangle extends Figure {

Rectangle(double a, double b) {

super(a ,b);

}

Double area() {

System.out.println("Inside area for rectangle.");

return(dim1*dim2);

}

}

以上代码运行输出结果为:

Inside area for figure.
Area is :100.0
Inside area for rectangle.
Area is :45.0

Java 实例 - instanceof 关键字用法

instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。

instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。

以下实例创建了 displayObjectClass() 方法来演示 Java instanceof 关键字用法:

/* author by runoob.com Main.java */

import java.util.ArrayList;

import java.util.Vector;

public class Main {

public static void main(String[] args) {

Object testObject = new ArrayList();

displayObjectClass(testObject);

}

public static void displayObjectClass(Object o) {

if (o instanceof Vector)

System.out.println("对象是 java.util.Vector 类的实例");

else if (o instanceof ArrayList)

System.out.println("对象是 java.util.ArrayList 类的实例");

else System.out.println("对象是 " + o.getClass() + " 类的实例");

}

}

以上代码运行输出结果为:

对象是 java.util.ArrayList 类的实例

Java 实例 - break 关键字用法

Java break 语句可以直接强行退出当前的循环,忽略循环体中任何其他语句和循环条件测试。

以下实例使用了 break 关键字来跳出当前循环:

 

public class Main { public static void main(String[] args) {

int[] intary = { 99,12,22,34,45,67,5678,8990 };

int no = 5678;

int i = 0;

boolean found = false;

for ( ; i < intary.length; i++) {

if (intary[i] == no) {

found = true; break;

}

}

if (found) {

System.out.println(no + " 元素的索引位置在: " + i);

} else {

System.out.println(no + " 元素不在数组总");

}

}

}

以上代码运行输出结果为:

5678 元素的索引位置在: 6

Java 实例 - continue 关键字用法

Java continue 语句语句用来结束当前循环,并进入下一次循环,即仅仅这一次循环结束了,不是所有循环结束了,后边的循环依旧进行。

以下实例使用了 continue 关键字来跳过当前循环并开始下一次循环:

public class Main {

public static void main(String[] args) {

StringBuffer searchstr = new StringBuffer("hello how are you. ");

int length = searchstr.length();

int count = 0;

for (int i = 0; i < length; i++) {

if (searchstr.charAt(i) != 'h')

continue;

count++; searchstr.setCharAt(i, 'h');

}

System.out.println("发现 " + count + " 个 h 字符");

System.out.println(searchstr);

}

}

以上代码运行输出结果为:

发现 2 个 h 字符
hello how are you.

Java 实例 - 标签(Label)

Java 中的标签是为循环设计的,是为了在多重循环中方便的使用break 和coutinue 。

以下实例当在循环中使用 break 或 continue 循环时跳到指定的标签处:

public class Main {

public static void main(String[] args) {

String strSearch = "This is the string in which you have to search for a substring.";

String substring = "substring"; boolean found = false;

int max = strSearch.length() - substring.length();

testlbl: for (int i = 0; i <= max; i++) {

int length = substring.length();

int j = i;

int k = 0;

while (length-- != 0) {

if(strSearch.charAt(j++) != substring.charAt(k++)){

continue testlbl;

}

}

found = true;

break testlbl;

}

if (found) { System.out.println("发现子字符串。");

}

else

{

System.out.println("字符串中没有发现子字符串。"); } } }

以上代码运行输出结果为:

发现子字符串。

Java 实例 - enum 和 switch 语句使用

Java 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类

对enum进行遍历和switch的操作示例代码:

enum Car {

lamborghini,tata,audi,fiat,honda

}

public class Main {

public static void main(String args[]){

Car c; c = Car.tata;

switch(c) {

case lamborghini:

System.out.println("你选择了 lamborghini!");

break;

case tata:

System.out.println("你选择了 tata!");

break;

case audi:

System.out.println("你选择了 audi!");

break;

case fiat:

System.out.println("你选择了 fiat!");

break;

case honda:

System.out.println("你选择了 honda!");

break;

default:

System.out.println("我不知道你的车型。");

break; } } }

以上代码运行输出结果为:

你选择了 tata!

Java 实例 - Enum(枚举)构造函数及方法的使用

以下实例演示了Enum(枚举)构造函数及方法的使用:

enum Car {

lamborghini(900),tata(2),audi(50),fiat(15),honda(12);

private int price;

Car(int p) {

price = p;

}

int getPrice() {

return price;

}

}

public class Main {

public static void main(String args[]){

System.out.println("所有汽车的价格:");

for (Car c : Car.values())

System.out.println(c + " 需要 " + c.getPrice() + " 千美元。"); } }

以上代码运行输出结果为:

所有汽车的价格:
lamborghini 需要 900 千美元。
tata 需要 2 千美元。
audi 需要 50 千美元。
fiat 需要 15 千美元。
honda 需要 12 千美元。

Java 实例 - for 和 foreach循环使用

for 语句比较简单,用于循环数据。

for循环执行的次数是在执行前就确定的。语法格式如下:

for(初始化; 布尔表达式; 更新) {
    //代码语句
}

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。

foreach 语法格式如下:

for(元素类型t 元素变量x : 遍历对象obj){ 
     引用了x的java语句; 
} 

以下实例演示了 for 和 foreach循环使用:

public class Main {

public static void main(String[] args) {

int[] intary = { 1,2,3,4}; forDisplay(intary);

foreachDisplay(intary);

}

public static void forDisplay(int[] a){

System.out.println("使用 for 循环数组");

for (int i = 0; i < a.length; i++) {

System.out.print(a[i] + " ");

}

System.out.println();

}

public static void foreachDisplay(int[] data){

System.out.println("使用 foreach 循环数组");

for (int a : data) {

System.out.print(a+ " "); } } }

以上代码运行输出结果为:

使用 for 循环数组
1 2 3 4 
使用 foreach 循环数组
1 2 3 4

ava1.5提供了一个叫varargs的新功能,就是可变长度的参数。

"Varargs"是"variable number of arguments"的意思。有时候也被简单的称为"variable arguments"

Java 实例 - Varargs 可变参数使用

定义实参个数可变的方法:只要在一个形参的"类型"与"参数名"之间加上三个连续的"."(即"...",英文里的句中省略号),就可以让它和不确定个实参相匹配。

以下实例创建了 sumvarargs() 方法来统计所有数字的值:

public class Main {

static int sumvarargs(int... intArrays){

int sum, i;

sum=0;

for(i=0; i< intArrays.length; i++) {

sum += intArrays[i]; } return(sum);

}

public static void main(String args[]){

int sum=0;

sum = sumvarargs(new int[]{10,12,33});

System.out.println("数字相加之和为: " + sum); } }

以上代码运行输出结果为:

数字相加之和为: 55

Java 实例 - 重载(overloading)方法中使用 Varargs

以下实例演示了如何在重载方法中使用可变参数:

public class Main {

static void vaTest(int ... no) {

System.out.print("vaTest(int ...): " + "参数个数: " + no.length +" 内容: ");

for(int n : no)

System.out.print(n + " ");

System.out.println();

}

static void vaTest(boolean ... bl) {

System.out.print("vaTest(boolean ...) " + "参数个数: " + bl.length + " 内容: ");

for(boolean b : bl) System.out.print(b + " ");

System.out.println();

}

static void vaTest(String msg, int ... no) {

System.out.print("vaTest(String, int ...): " + msg +"参数个数: "+ no.length +" 内容: ");

for(int n : no)

System.out.print(n + " ");

System.out.println();

}

public static void main(String args[]){

vaTest(1, 2, 3);

vaTest("测试: ", 10, 20);

vaTest(true, false, false); } }

以上代码运行输出结果为:

vaTest(int ...): 参数个数: 3 内容: 1 2 3 
vaTest(String, int ...): 测试: 参数个数: 2 内容: 10 20 
vaTest(boolean ...) 参数个数: 3 内容: true false false 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值