19.java方法

合集下载

Java复习题

Java复习题

Java复习题一、判断题1.Java程序里,创建新的类对象用关键字naw。

2.有的类定义时可以不定义构造函数,所以构造函数不是必需的。

3.类及其属性、方法可以同时有一个以上的修饰符来修饰。

4.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。

5.Final类中的属性和方法都必须被final修饰符修饰。

6.最终类不能派生子类,最终方法不能被覆盖。

7.子类要调用父类的方法,必须使用super关键字。

8.一个Java类可以有多个父类。

9.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。

10.一个类如果实现了某个接口,那么它必须重写该接口中的所有方法。

11.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。

12.Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。

13.子类的方法的数目一定大于等于父类的方法的数目。

14.类在实现接口的方法时,必须显示地使用public修饰符。

15.一个类只能有一个父类,但一个接口可以有一个以上的父接口。

16.java异常处理中可以使用多个catch子句,此时应将高级别异常类的catch子句放在前面。

17.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参的,函数体为空。

18.在Java的方法中定义一个常量要用const关键字。

19.Java的类不允许多重继承,但接口支持多重继承。

20.在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。

21.构造函数用于创建类的实例对象,构造函数名应与类名相同,在类中必须定义构造函数,且只能定义一个构造函数。

22.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。

23.可以用new来创建一个类的实例,即"对象"。

java类与对象选择题附加答案解析

java类与对象选择题附加答案解析

Java 类与对象选择题练习附加答案解析1. 以下关于Java类的描述,正确的是:A. 类是对象的实例。

B. 类可以包含属性和方法。

C. 类不能继承其他类。

D. 类只能包含一个方法。

答案: B。

解析:类是对象的蓝图或模板,可以包含属性(成员变量)和方法(成员函数)。

2. 在Java中,要创建一个类的对象,应使用哪个关键字?A. newB. createC. instantiateD. make答案: A。

解析:在Java中,使用`new`关键字来创建类的对象。

3. 在以下关于构造方法的描述中,正确的是:A. 构造方法必须有返回类型。

B. 构造方法的名称必须与类名相同。

C. 构造方法可以是静态的。

D. 构造方法可以重载但不能覆盖。

答案: B。

解析:构造方法的名称必须与类名相同,并且没有返回类型(包括void)。

构造方法可以重载(多个同名但参数不同的方法),但不能覆盖(重写父类方法)。

4. 如果`MyClass`类有一个名为`display`的方法,且`myObject`是`MyClass`类的一个实例,如何调用该方法?A. display();B. MyClass.display();C. myObject.display();D. MyClass::display();答案: C。

解析:通过对象实例`myObject`来调用类的非静态方法`display`。

5. 以下哪个选项是关于`this`关键字的正确描述?A. `this`关键字指向类的超类(父类)。

B. `this`关键字只能在静态方法中使用。

C. `this`关键字引用当前对象的实例。

D. `this`关键字用于创建新的对象。

答案: C。

解析:`this`关键字引用当前对象的实例,可以在类的方法和构造方法中使用来引用当前对象的成员变量或方法。

6. 在Java中,如果类B继承自类A,且类A是基类,则下列哪个选项是正确的?A. 类B是类A的超类。

50个Java初级开发工程师面试题附解答

50个Java初级开发工程师面试题附解答

50个Java初级开发工程师面试题附解答1. 什么是Java编程语言,它的主要特点是什么?Java是一种面向对象的编程语言,它的主要特点包括跨平台性、强类型、自动内存管理、多线程支持等。

2. Java中的基本数据类型有哪些?Java中的基本数据类型包括整数类型(int, byte, short, long)、浮点类型(float, double)、字符类型(char)和布尔类型(boolean)。

3. 什么是Java中的类和对象?类是Java中的模板,用于定义对象的属性和方法。

对象是类的实例,具有类定义的属性和方法。

4. 解释什么是面向对象编程(OOP)?面向对象编程是一种编程范式,它将数据和方法封装在对象中,以实现代码的重用、模块化和抽象。

5. 什么是Java中的继承,如何使用它?继承是一种机制,允许一个类继承另一个类的属性和方法。

在Java中,使用`extends`关键字创建子类,并可以访问父类的成员。

6. 什么是Java中的多态性?多态性是OOP的概念,允许不同对象以相同的方式响应相同的方法调用。

在Java中,多态性通常与继承和方法重写相关。

7. 什么是Java中的封装?封装是一种OOP原则,它通过将数据隐藏在类内部并提供公共方法来保护数据的完整性。

8. 什么是Java中的抽象类和接口?抽象类是一个类,它不能实例化,用于定义子类的通用结构。

接口是一种抽象类,定义了一组方法,但没有实现。

9. Java中的异常处理机制是什么?Java使用try-catch语句处理异常。

异常是在运行时可能发生的错误,捕获异常可以防止程序崩溃。

10. 什么是Java中的集合框架,它包括哪些类?Java集合框架是一组类和接口,用于存储和操作数据。

它包括ArrayList、LinkedList、HashSet、HashMap等类。

11. 什么是Java中的线程,如何创建和管理线程?线程是执行程序的最小单位。

在Java中,线程可以通过继承Thread类或实现Runnable 接口来创建,然后由JVM进行管理。

java面向对象填空题(含答案)

java面向对象填空题(含答案)

一、java面向对象(50个)易:1.对象是由一组属性和对这组属性进行(操作)的一组服务组成的。

2.对象是指(具体)的事物,而类是指一类具有某种共性的事物。

3.由类来确定具体对象的过程称为类的(实例化)。

4.一个类由类声明和(类体)两部分组成。

5.当一个类的类修饰符为( final )时,说明该类不能被继承,即不能有子类。

6.Java程序在extends之后只能有一个父类,即extends只能实现(单)继承。

7.在Java中只能实现单继承,但可通过(接口)实现多重继承。

8.一个类可实现多个接口,各接口名是以(,)分隔。

9.在类体中声明的变量称为(成员)。

10.在方法中声明的变量称为(局部变量)。

11.在Java程序中,使用关键字(this)来引用当前对象。

12.一个方法的定义是由方法声明和(方法体)两部分组成。

13.方法声明包括(方法名)、返回类型和形式参数。

14.构造方法的方法名要求与(类名)相同,而且无返回值。

15.面向对象的三个特性是:封装性、继承性和(多态性)。

16.在Java中,通过对象的(封装),实现了模块化和信息隐藏。

17.两个方法具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同,则称为方法的(重写)。

18.Java中通过关键字(super)来实现对父类成员的访问。

19.Java用( extends)关键字指明继承关系。

20.在Java中,用关键字(abstract)来修饰一个类,则该类为抽象类。

21.若某个类包含了抽象方法,则该类必须被定义为(抽象)类。

22.接口的定义,需使用关键字(interface)来声明。

23.声明父类时,需使用关键字(extends)来实现。

24.java语言中接口是特殊的类,其中包含常量和(抽象)方法。

25.当要引用包中所有的类时,类名可以用通配符(* )号代替。

26.一个类要从另一个类继承变量和方法,必须使用关键字(extends)。

27.(抽象)类不能被实例化,它不具备实际功能,只用于衍生子类。

java基础测试题及答案高中

java基础测试题及答案高中

java基础测试题及答案高中一、选择题(每题2分,共20分)1. Java是一种______。

A. 编译型语言B. 解释型语言C. 汇编语言D. 机器语言答案:A2. 下列哪个是Java的基本数据类型?A. StringB. IntegerC. booleanD. Object答案:C3. Java的main()方法的返回类型是:A. voidB. intC. StringD. double答案:B4. 在Java中,哪个关键字用于定义类?A. classB. defC. typeD. struct答案:A5. Java中,哪个关键字用于实现继承?A. extendsB. inheritC. derivesD. super答案:A6. Java中,哪个关键字用于实现接口?A. implementsB. usesC. extendsD. includes答案:A7. 下列哪个是Java的包管理语句?A. packageB. importC. includeD. require答案:A8. 在Java中,哪个关键字用于定义方法?A. methodB. functionC. defD. void答案:D9. Java中,哪个关键字用于实现多态?A. overloadB. overrideC. overloadingD. overriding答案:D10. 在Java中,哪个关键字用于定义数组?A. arrayB. listC. setD. map答案:A二、填空题(每空2分,共20分)11. Java是一种面向______的编程语言。

答案:对象12. Java的源文件名必须与______的名称一致。

答案:类名13. Java中,所有的类都是Object类的______。

答案:子类14. Java的异常处理机制是通过______类实现的。

答案:Throwable15. Java中,可以通过______关键字来实现类的封装。

java创建类的5种方式

java创建类的5种方式

java创建类的5种⽅式1、使⽤new关键字 } →调⽤了构造函数这种⽅式,我们可以调⽤任意的构造函数(⽆参的和带参数的)。

2、使⽤Class类的newInstance⽅法 } →调⽤了构造函数使⽤Class类的newInstance⽅法创建对象。

这个newInstance⽅法调⽤⽆参的构造函数创建对象。

3、使⽤Constructor类的newInstance⽅法 } →调⽤了构造函数和Class类的newInstance⽅法很像, ng.reflect.Constructor类⾥也有⼀个newInstance⽅法可以创建对象。

我们可以通过这个newInstance⽅法调⽤有参数的和私有的构造函数。

4、使⽤clone⽅法 } →没有调⽤构造函数⽆论何时我们调⽤⼀个对象的clone⽅法,jvm就会创建⼀个新的对象,将前⾯对象的内容全部拷贝进去。

⽤clone⽅法创建对象并不会调⽤任何构造函数。

要使⽤clone⽅法,我们需要先实现Cloneable接⼝并实现其定义的clone⽅法。

5、使⽤反序列化 } →没有调⽤构造函数当我们序列化和反序列化⼀个对象,jvm会给我们创建⼀个单独的对象。

在反序列化时,jvm创建对象并不会调⽤任何构造函数。

为了反序列化⼀个对象,我们需要让我们的类实现Serializable接⼝代码demo1package javatest.demo;23import java.io.Serializable;45public class PrintTest implements Cloneable, Serializable {67public static final long serivalVersion = 1L;89private String name;1011public PrintTest() {12 System.out.println("this is Constructor");13 }1415public void hello() {16 System.out.println("hello ");17 }1819 @Override20public int hashCode() {21final int prime = 31;22int result = 1;23 result = prime * result + ((name == null) ? 0 : name.hashCode());24return result;25 }2627 @Override28public boolean equals(Object obj) {29if (this == obj)30return true;31if (obj == null)32return false;33if (getClass() != obj.getClass())34return false;35 PrintTest other = (PrintTest) obj;36if (name == null) {37if ( != null)38return false;39 } else if (!name.equals())40return false;41return true;42 }4344 @Override45public String toString() {46return "PrintTest [name=" + name + "]";47 }4849 @Override50protected Object clone() throws CloneNotSupportedException {51// TODO Auto-generated method stub52return super.clone();53 }5455public String getName() {56return name;57 }5859public void setName(String name) { = name;61 }6263 }测试类1package javatest.demo;23import java.io.FileInputStream;4import java.io.FileOutputStream;5import java.io.ObjectInputStream;6import java.io.ObjectOutputStream;7import ng.reflect.Constructor;89/**10 * 创建⼀个类的⼏种⽅法?11 *12 * @author BrokenColor13 * @date 2018年6⽉7⽇14*/15public class InstanceDemo {1617public static void main(String[] args) {1819// 使⽤new关键字} →调⽤了构造函数20 System.out.println("=================new关键字:");21 PrintTest printtest1 = new PrintTest();22 printtest1.setName("printtest1");23 System.out.println(printtest1 + ",hashcode:" + printtest1.hashCode());24 printtest1.hello();25try {26// 使⽤Class类的newInstance⽅法} →调⽤了构造函数27 System.out.println("=========Class类的newInstance⽅法:");28 PrintTest printtest2 = (PrintTest) Class.forName("javatest.demo.PrintTest").newInstance(); 29//或者可以30// PringtTest pringttest2 = PringtTest.class.newInstance();31 printtest2.setName("printtest2");32 System.out.println(printtest2 + ",hashcode:" + printtest2.hashCode());33 printtest2.hello();3435// 使⽤Constructor类的newInstance⽅法 } →调⽤了构造函数36 System.out.println("=======Constructor类的newInstance⽅法:");37 Constructor<PrintTest> constructor = PrintTest.class.getConstructor();38 PrintTest printTest3 = (PrintTest) constructor.newInstance();39 printTest3.setName("printTest3");40 System.out.println(printTest3 + ",hashcode:" + printTest3.hashCode());41 printTest3.hello();4243// 使⽤clone⽅法 } →没有调⽤构造函数44 System.out.println("=======使⽤clone⽅法 } →没有调⽤构造函数");45 PrintTest printTest4 = (PrintTest) printTest3.clone();46 printTest4.setName("printTest4");47 System.out.println(printTest4+",hashcode:"+printTest4.hashCode());4849//序列化50 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("data.obj"));51 out.writeObject(printTest4);52 out.close();5354// 使⽤反序列化 } →没有调⽤构造函数55 System.out.println("===========使⽤反序列化");56 ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));57 PrintTest printTest5 = (PrintTest) in.readObject();58 printTest5.setName("printTest5");59 System.out.println(printTest5+",hashcode:"+printTest5.hashCode());60 printTest5.hello();6162 } catch (Exception e) {63// TODO Auto-generated catch block64 e.printStackTrace();65 }6667 }6869 }运⾏类运⾏结果:。

大一java课程设计

大一java课程设计

大一java课程设计一、教学目标本课程的教学目标是使学生掌握Java编程语言的基本语法、基本概念和编程方法,培养学生独立思考、解决问题的能力,使学生能够运用Java语言编写简单的应用程序。

1.掌握Java语言的基本语法和编程规则。

2.理解Java中的基本数据类型、运算符、控制语句等。

3.掌握Java中的类和对象、继承和多态等面向对象编程概念。

4.熟悉Java中的常用类库和API。

5.能够使用Java语言编写简单的应用程序。

6.能够运用面向对象编程思想进行程序设计。

7.能够阅读和理解Java代码。

8.能够对Java程序进行调试和优化。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。

2.培养学生的问题解决能力和创新精神。

3.培养学生的自主学习能力和终身学习的观念。

二、教学内容教学内容主要包括Java语言的基本语法、基本概念和编程方法。

具体包括以下几个方面:1.Java语言的基本语法:变量、数据类型、运算符、控制语句等。

2.Java中的类和对象:类的定义、构造方法、成员变量和方法、对象的创建和使用等。

3.Java中的继承和多态:继承的概念、多态的实现、方法重写和重载等。

4.Java中的常用类库和API:字符串处理、集合框架、输入输出等。

5.Java程序的设计和调试:程序设计的原则、调试技巧、性能优化等。

三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法、实验法等。

1.讲授法:通过讲解和示例,使学生掌握Java语言的基本语法和编程方法。

2.讨论法:通过小组讨论和问题解答,培养学生的团队合作意识和沟通能力。

3.案例分析法:通过分析实际案例,使学生理解和运用面向对象编程思想。

4.实验法:通过编写和调试Java程序,培养学生的实际编程能力和问题解决能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备等。

1.教材:选用权威、实用的Java编程教材,如《Java核心技术》等。

JAVA填空题复习(有答案)

JAVA填空题复习(有答案)

JAVA 复习1、面向对象程序设计的三个特征是_封装、多态、继承。

2、 Java 语言的主要特点有简单性、安全性、面向对象、平台无关性。

3、 Java 是面向对象语言,类是客观事物的_抽象_ __,而对象是类的_实例_ __。

4、类_ _是Java 程序中基本的结构单位。

5、 Java 语言是一种完全的_面向对象_程序设计语言6、布尔型常量有两个值,它们分别true_ _、_ false _7、表达式 1/2*9 的计算结果是0 。

8、表达式“b”+10的值为_”b10”,‘b'+10的值为108__9、String s1=“China”; int n=s1.length( ); n 的值为_5__10、_ 常量名__必须完全大写。

11、Java 中用于定义整形变量的关键字有四个:byte、_short__、_int___、long。

12、在Java 语言中,简单数据类型包括:整数类型、浮点类型、字符类型_和布尔类型。

13、Java 的类型、单精度浮点型、布尔型数据的保留字分别是:float_、boolean。

14、JAVA 语言中提供了两种类型的字符串类来处理字符串,它们是String_和StringBuffer 类15、Java 程序的种类有:内嵌于_HTML__文件中,由浏览器来观看的_applet___,必须继承__Applet __;可独立运行的_application___,必须包含_main()方法__16、Java 语言中,所有的类都是Object 的子类,Java 的窗口通常是JFrame__的子类,抽象_类只能定义但不能被实例化,_ 最终_类不能被继承异常类都是_Exception_ 的子类。

17、Java 源程序文件和字节码文件的扩展名分别为_.java___和_.class___18、一般Java 程序的类体由两部分组成:一部分是_ 属性_,另一部分是_方法_19、子类对父类继承来的属性重新定义称为__ 重写__。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1方法概述在我们的日常生活中,方法可以理解为要做某件事情,而采取的解决办法。

如:小明同学在路边准备坐车来学校学习。

这就面临着一件事情(坐车到学校这件事情)需要解决,解决办法呢?事情的办法,我们就称为方法。

在JAVA中,方法就是用来完成解决某件事情或实现某个功能的办法。

方法实现的过程中,会包含很多条语句用于完成某些有意义的功能——通常是处理文本,控制输入或计算数值。

我们可以通过在程序代码中引用方法名称和所需的参数,实现在该程序中执行(或称调用)该方法。

方法,一般都1.2方法的语法格式在Java中,声明一个JAVA方法的具体语法格式如下:修饰符返回值类型方法名(参数类型参数名1,参数类型参数名2,......){执行语句………return 返回值;}对于上面的语法格式中具体说明如下:修饰符:方法的修饰符比较多,有对访问权限进行限定的,有静态修饰符static,还有最终修饰符final等,这些修返回值类型:用于限定方法返回值的数据类型参数类型:用于限定调用方法时传入参数的数据类型参数名:是一个变量,用于接收调用方法时传入的数据return关键字:用于结束方法以及返回方法指定类型的值返回值:被return语句返回的值,该值会返回给调用者需要特别注意的是,方法中的“参数类型参数名1,参数类型参数名2”被称作参数列表,它用于描述方法在被调列表为空,即()内不写任何内容。

方法的返回值必须为方法声明的返回值类型,如果方法中没有返回值,返回值类型接下来通过一个案例来演示方法的定义与使用,如下图所示。

MethodDemo01.javapublic class MethodDemo01 {public static void main(String[] args) {int area = getArea(3, 5); // 调用getArea方法System.out.println(" The area is " + area);}// 下面定义了一个求矩形面积的方法,接收两个参数,其中x为高,y为宽public static int getArea(int x, int y) {int temp = x * y; // 使用变量temp记住运算结果return temp; // 将变量temp的值返回}运行结果如下图所示。

图1-1运行结果在上述代码中,定义了一个getArea()方法用于求矩形的面积,参数x和y分别用于接收调用方法时传入的高和宽,用getArea()方法,获得矩形的面积,并将结果打印。

1.3方法调用图解接下来通过一个图例演示getArea()方法的整个调用过程,如下图所示。

图1-2getArea()方法的调用过程从上图中可以看出,在程序运行期间,参数x和y相当于在内存中定义的两个变量。

当调用getArea()方法时,传入的语句返回,整个方法的调用过程结束,变量x和y被释放。

1.4方法定义练习分别定义如下方法:定义无返回值无参数方法,如打印3行,每行3个*号的矩形定义有返回值无参数方法,如键盘录入得到一个整数定义无返回值有参数方法,如打印指定M行,每行N个*号的矩形定义有返回值有参数方法,如求三个数的平均值无返回值无参数方法,如打印3行,每行3个*号的矩形public static void printRect(){//打印3行星for (int i=0; i<3; i++) {//System.out.println("***"); 相当于是打印3颗星,换行//每行打印3颗星for (int j=0; j<3; j++) {System.out.print("*"); // ***System.out.println();}}有返回值无参数方法,如键盘录入得到一个整数public static int getNumber(){Scanner sc = new Scanner(System.in);int number = sc.nextInt();return number;}无返回值有参数方法,如打印指定M行,每行N个*号的矩形public static void printRect2(int m, int n){//打印M行星for (int i=0; i<m; i++)="" {<="" div="" style="word-wrap: break-word; padding: 0px; margin: 0px;">//每行中打印N颗星for (int j=0; j<n; j++)="" {<="" div="" style="word-wrap: break-word; padding: 0px; margin: 0px;"> System.out.print("*");}System.out.println();}}有返回值有参数方法,如求三个数的平均值public static double getAvg(double a, double b, double c) {double result = (a+b+c)/3;return result;}1.5方法的重载我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情加、对三个整数相加以及对两个小数相加的功能,具体实现如下所示。

MethodDemo02.javapublic class MethodDemo02 {public static void main(String[] args) {// 下面是针对求和方法的调用int sum1 = add01(1, 2);int sum2 = add02(1, 2, 3);double sum3 = add03(1.2, 2.3);// 下面的代码是打印求和的结果System.out.println("sum1=" + sum1);System.out.println("sum2=" + sum2);System.out.println("sum3=" + sum3);}// 下面的方法实现了两个整数相加public static int add01(int x, int y) {return x + y;}// 下面的方法实现了三个整数相加public static int add02(int x, int y, int z) {return x + y + z;}// 下面的方法实现了两个小数相加public static double add03(double x, double y) {return x + y;}}运行结果如下图所示。

图1-3运行结果从上述代码不难看出,程序需要针对每一种求和的情况都定义一个方法,如果每个方法的名称都不相同,在调用时为了解决这个问题,Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法下面的三个方法互为重载关系public static int add(int x,int y) {逻辑} //两个整数加法public static int add(int x,int y,int z) {逻辑} //三个整数加法public static int add(double x,double y) {逻辑} //两个小数加法接下来通过方法重载的方式进行修改,如下所示。

MethodDemo03.javapublic class MethodDemo03 {public static void main(String[] args) {// 下面是针对求和方法的调用int sum1 = add(1, 2);int sum2 = add(1, 2, 3);double sum3 = add(1.2, 2.3);// 下面的代码是打印求和的结果System.out.println("sum1=" + sum1);System.out.println("sum2=" + sum2);System.out.println("sum3=" + sum3);}// 下面的方法实现了两个整数相加public static int add(int x, int y) {return x + y;}// 下面的方法实现了三个整数相加public static int add(int x, int y, int z) {return x + y + z;}// 下面的方法实现了两个小数相加public static double add(double x, double y) {return x + y;}}MethodDemo02.java的运行结果和MethodDemo03.java一样,如下图所示。

图1-4运行结果上述代码中定义了三个同名的add()方法,它们的参数个数或类型不同,从而形成了方法的重载。

在main()方法中调用add()方法时,通过传入不同的参数便可以确定调用哪个重载的方法,如add(1,2)调用的是两关,它只有两个条件,一是方法名相同,二是参数个数或参数类型不相同。

1.5.1重载的注意事项重载方法参数必须不同:参数个数不同,如method(int x)与method(int x,int y)不同参数类型不同,如method(int x)与method(double x)不同g参数顺序不同,如method(int x,double y)与method(double x,int y)不同重载只与方法名与参数类型相关与返回值无关如void method(int x)与int method(int y)不是方法重载,不能同时存在重载与具体的变量标识符无关如method(int x)与method(int y)不是方法重载,不能同时存在1.5.2参数传递参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数,这样方法中的参数就递方式,我们称为参数传递。

在这里,定义方法时,参数列表中的变量,我们称为形式参数调用方法时,传入给方法的数值,我们称为实际参数我们看下面的两段代码,来明确下参数传递的过程:public class ArgumentsDemo01 {public static void main(String[] args) {int a=5;int b=10;change(a, b);//调用方法时,传入的数值称为实际参数System.out.println("a=" + a);System.out.println("b=" + b);}public static void change(int a, int b){//方法中指定的多个参数称为形式参数a=200;b=500;}}程序的运行结果如下:再看另一段代码public class ArgumentsDemo02 {public static void main(String[] args) {int[] arr = { 1, 2, 3 };change(arr);// 调用方法时,传入的数值称为实际参数for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}public static void change(int[] arr) {// 方法中指定的多个参数称为形式参数for (int i = 0; i < arr.length; i++) {arr[i] *= 2;}}}程序的运行结果如下:1.5.3参数传递图解与结论通过上面的两段程序可以得出如下结论:当调用方法时,如果传入的数值为基本数据类型(包含String类型),形式参数的改变对实际参数不影响当调用方法时,如果传入的数值为引用数据类型(String类型除外),形式参数的改变对实际参数有影响。

相关文档
最新文档