`
Roader123
  • 浏览: 94189 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 方法 对象参数

阅读更多
/**
   @version 1.00 2000-01-27
   @author Cay Horstmann
*/

public class ParamTest
{
   public static void main(String[] args)
   {
      /*
         Test 1: Methods can't modify numeric parameters
      */
      System.out.println("Testing tripleValue:");
      double percent = 10;
      System.out.println("Before: percent=" + percent);
      tripleValue(percent);
      System.out.println("After: percent=" + percent);

      /*
         Test 2: Methods can change the state of object
         parameters
      */
      System.out.println("\nTesting tripleSalary:");
      Employee harry = new Employee("Harry", 50000);
      System.out.println("Before: salary=" + harry.getSalary());
      tripleSalary(harry);
      System.out.println("After: salary=" + harry.getSalary());

      /*
         Test 3: Methods can't attach new objects to
         object parameters
      */
      System.out.println("\nTesting swap:");
      Employee a = new Employee("Alice", 70000);
      Employee b = new Employee("Bob", 60000);
      System.out.println("Before: a=" + a.getName());
      System.out.println("Before: b=" + b.getName());
      swap(a, b);
      System.out.println("After: a=" + a.getName());
      System.out.println("After: b=" + b.getName());
   }

   public static void tripleValue(double x) // doesn't work
   {
      x = 3 * x;
      System.out.println("End of method: x=" + x);
   }

   public static void tripleSalary(Employee x) // works
   {
      x.raiseSalary(200);
      System.out.println("End of method: salary="
         + x.getSalary());
   }

   public static void swap(Employee x, Employee y)
   {
      Employee temp = x;
      System.out.println("swap method: Employee temp.name=" + temp.getName() + " temp.salary=" + temp.getSalary() );
      x = y;
      y = temp;
      System.out.println("End of method: x=" + x.getName());
      System.out.println("End of method: y=" + y.getName());
      System.out.println("swap method: Employee temp.name=" + temp.getName() + " temp.salary=" + temp.getSalary() );
      
   }
}

class Employee // simplified Employee class
{
   public Employee(String n, double s)
   {
      name = n;
      salary = s;
   }

   public String getName()
   {
      return name;
   }

   public double getSalary()
   {
      return salary;
   }

   public void raiseSalary(double byPercent)
   {
      double raise = salary * byPercent / 100;
      salary += raise;
   }

   private String name;
   private double salary;
}

 

Testing tripleValue:
Before: percent=10.0
End of method: x=30.0
After: percent=10.0

Testing tripleSalary:
Before: salary=50000.0
End of method: salary=150000.0
After: salary=150000.0

Testing swap:
Before: a=Alice
Before: b=Bob
swap method: Employee temp.name=Alice temp.salary=70000.0
End of method: x=Bob
End of method: y=Alice
swap method: Employee temp.name=Alice temp.salary=70000.0
After: a=Alice
After: b=Bob

 

分享到:
评论

相关推荐

    java方法的参数传递其二.docx

    Java 方法参数传递是 Java 编程语言中的一种基本机制,在方法调用时将参数传递给方法体内的变量,但是在传递过程中,参数的类型会对传递结果产生影响。在本文中,我们将讨论 Java 方法参数传递中的引用类型传递。 ...

    java传递参数的方法

    java传递参数的方法 很的东西 大家下载学习一下

    java实现对象转化为get请求的param参数String字符串

    java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...

    java面向对象的设计方法

    Java作为一种强大的面向对象编程语言,深入理解和掌握面向对象的设计方法对于任何Java开发者来说都是至关重要的。在Java中,面向对象主要体现在类、对象、封装、继承、多态这五个核心概念上。 首先,类是面向对象的...

    Java面向对象程序设计

    12. **泛型**:泛型是Java 5引入的新特性,允许在定义类、接口和方法时指定类型的参数,提高了代码的类型安全性和重用性。 13. **I/O流**:Java的I/O流系统支持数据的输入和输出,包括字符流和字节流,以及过滤流、...

    Java面向对象基础练习题

    通过对上述练习题的分析,我们可以加深对Java面向对象编程中类和对象、实例变量、方法重载、构造方法、引用和this关键字的理解和应用。这些知识点对于日后进一步学习面向对象的高级特性,比如继承和多态,打下了坚实...

    Java语言的方法参数浅析

    通过对典型程序的研究与分析可以看出JAVA语言的参数传递总是传值调用的,但是对于基本类型的参数和对象类型的参数来说,参数传递的情况不完全相同.Java语言不能直接使用传引用调用,但是可以通过数组的方式模拟传引用...

    Java 面向对象 练习题与答案

    Java 面向对象编程练习题与答案 本资源摘要信息涵盖了 Java 面向对象编程的多个知识点,包括 Font 类、Toolkit 类、包机制、抽象类、数组操作等。 1. Font 类: Font 类是 Java 中的一个类,用于设置程序中的字体...

    Java面向对象程序设计课后答案全解

    Java面向对象程序设计是计算机科学中的一个重要领域,它基于面向对象编程(OOP)原则,为开发者提供了构建复杂软件系统的方法。本资源包含了该课程所有章节的课后习题答案,帮助学习者深入理解Java语言的面向对象...

    java 反射 调用私有方法(有参数私有方法)获取私有属性值

    Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...

    java面向对象测试题含答案.docx

    本资源摘要信息涵盖了 Java 面向对象编程的基础知识点,包括类和对象之间的关系、类的声明、方法的声明和使用、构造方法、面向对象编程的基本概念等。 1. 类和对象之间的关系:类和对象之间存在抽象和具体的关系,...

    Java面向对象程序设计+源代码+课后习题答案)

    9. 泛型:泛型引入了类型参数,允许在类、接口和方法中使用类型变量,提高了代码的类型安全性和重用性。 10. 集合框架:Java集合框架包括List、Set、Queue等接口,以及ArrayList、LinkedList、HashSet、HashMap等...

    java中对象的作用,如何获取Request对象

    确保正确配置后,你可以在Servlet的`doGet`或`doPost`方法中通过`HttpServletRequest`参数来获取Request对象,例如: ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) ...

    Java面向对象程序设计(第二版)

    在Java中,当类的对象被创建时,构造方法自动执行。构造方法与类同名,没有返回类型,也不存在返回值。如果程序员没有为类编写构造方法,Java会提供一个默认的构造方法。 6. 抽象类和接口 抽象类是不能实例化的类,...

    浅析Java引用类型和方法参数传递

    ### 浅析Java引用类型和方法参数传递 #### 一、引言 在Java编程语言中,理解数据类型的处理方式对于编写高效、可维护的代码至关重要。本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例...

    《Java面向对象程序设计(第2版)》课件

    Java面向对象程序设计是计算机科学中的一个重要领域,尤其在软件开发中占据核心地位。第二版的《Java面向对象程序设计》课件旨在深入浅出地介绍这一关键概念,帮助学习者掌握Java语言的基础以及面向对象编程的核心...

    java中把对象转化为byte数组的方法.doc

    java中把对象转化为byte数组的方法 Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 ...

    java面向对象练习题-经典

    Java面向对象练习题是Java编程语言中非常重要的一部分,这些练习题涵盖了Java语言的基础知识,包括Java基本数据类型、运算符、控制结构、方法、类和对象、继承、多态、抽象类和接口等方面。通过这些练习题,可以对...

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    若要获取方法参数的注解,可以使用`Method`对象的`getParameters()`方法,它返回一个`Parameter`对象数组。每个`Parameter`对象都有自己的`getAnnotations()`方法。 ```java Parameter[] parameters = method.get...

Global site tag (gtag.js) - Google Analytics