JAVA面向对象之方法

一、方法的重载

Java允许在同一个类中定义几个同名的方法,只要这些方法具有不同的参数列表,即方法的参数类型不同,或方法参数个数不同。这种做法称为方法的重载。方法的重载包括以下几种:

1、成员方法的重载

重载方法的参数表必须不同,参数的不同主要是参数的类型、顺序、个数不同。

public class MethodOverload
{
   public int sum(int a, int b)
   {
      System.out.println("sum(int a, int b)");
      return a + b;
   }

   public double sum(double a, double b)
   {
      System.out.println("sum(double a, double b)");
      return a + b;
   }

   public static void main(String[] args)
   {
      MethodOverload overload = new MethodOverload();
      overload.sum(10, 10);
      overload.sum(10.0, 10.0);
   }
}

在上面的例子中定义了同名的方法sum,但参数列表不同,为了区分实际调用的方法,在sum方法中输出了方法的原型,运行后可得到如下结果:

sum(int a, int b)
sum(double a, double b)

由此我们可以看不到,虽然方法的方法名相同,但是Java会根据实际情况调用最适合的方法。

2、构造方法的重载

在上一篇博客中也提到了一些构造方法重载的知识,定义多个构造方法其实就是构造方法的重载。当一个类中存在多个重载的构造方法时,他们之间可以相互调用,这种调用通过关键字this实现,同时this调用语句必须是构造方法中的第一个可执行于语句。

3、注意

a、参数顺序

因参数的顺序不同而构建的重载的方法,一定要建立在类型不同的基础上,如果本身类型和个数相同,则不存不在顺序问题。

b、返回值

重载方法的返回类型可以相同,也可以不同,但如果仅是返回类型不同,而方法名和形参列表都相同,则是非法的。

二、方法间的参数传递

方法声明时的参数称为形式参数(形参)。直到方法被调用时,才被变量或其他数据所替代,而这些具体的变量或数据被称为实际参数。要调用一个方法必须提供实际参数,并且参数类型与顺序必须要与形式参数相对应。

1、基本数据类型的参数传递

public class Value
{
   public void change(int a)
   {
      a += 1;
   }

   public static void main(String[] args)
   {
      Value value = new Value();
      int a = 10;
      value.change(a);
      System.out.println(a);
   }
}

运行后输出结果为:10

此种传递方式形式参数就相当于方法中定义的局部变量,方法调用结束后就被释放了,不会影响到主程序中同名的局部变量,即在方法中对形参进行修改后不会影响到实际传递的实参。

2、引用数据类型的参数传递

public class Ref
{
   private int a;
   public void change(Ref ref)
   {
      ref.a += 1;
   }

   public static void main(String[] args)
   {
      Ref ref = new Ref();
      ref.a = 10;
      ref.change(ref);
      System.out.println(ref.a);
   }
}

运行后输出结果为:11

对象的引用变量并不是对象本身,它们只是对象的引用(名称)。就好像一个人可以有多个名字,同理,一个对象也可以有多个引用名称。因为实际的对象是同一个,所以在方法中对其进行修改后,会影响其它地方的引用。一定要注意区分这两种传递的区别。

时间: 2024-09-10 07:55:12

JAVA面向对象之方法的相关文章

详解Java面向对象编程中方法的使用_java

一个 Java 方法是为了执行某个操作的一些语句的组合.举个例子来说,当你调用 System.out.println 方法时,系统实际上会执行很多语句才能在控制台上输出信息. 现在你将学习怎么创建你自己的方法,他们可以有返回值也可以没有返回值,可以有参数,也可以没有参数,重载方法要使用相同的方法名称,并在程序设计中利用抽象的方法. 创建方法我们用下面的例子来解释方法的语法: public static int funcName(int a, int b) { // body } 在这里 publ

java源码-求大神,面向对象的方法

问题描述 求大神,面向对象的方法 这个题目不太会面向对象思想来写,求指导???????????????????????????????? 解决方案 面向对象方法中的数据库设计面向对象之类方法 解决方案二: class Class { private ArrayList<Student> students = new ArrayList<Student>(); public ArrayList<Student> getStudents() { return student

最大限制地提高代码的可重用性,克服传统面向对象编程方法在可重用性方面的不足

编程|对象     重用是一种神话,这似乎正在日渐成为编程人员的一种共识.然而,重用可能难以实现,因为传统面向对象编程方法在可重用性方面存在一些不足.本技巧说明了组成支持重用的一种不同方法的三个步骤. 第一步:将功能移出类实例方法由于类继承机制缺乏精确性,因此对于代码重用来说它并不是一种最理想的机制.也就是说,如果您要重用某个类的单个方法,就必须继承该类的其他方法以及数据成员.这种累赘不必要地将要重用此方法的代码复杂化了.继承类对其父类的依赖性引入了额外的复杂性:对父类的更改会影响子类:当更改父

Java面向对象编程学习总结

重要知识点总结如下: 1,抽象,封装,继承,多态是面向对象程序设计中得四个特点. 2,面向对象得软件开发大体分为:面向对象的分析,面向对象的设计,面向对象的实现. 可概括为如下过程:分析用户需求,从问题中抽取对象模型;细化模型,设计类,包括类的属性和类间的 相互关系,同时观察是否有可以直接引用的已有类或部件;选定一种面向对象的编程语言,具体编码实现 上一阶段类的设计,并在开发过程中引入测试,完善整个解决方案. 3,面向对象程序设计方法的优点是:可重用性,可扩展性,可管理性. 4,类的定义:cla

【Java面向对象学习】一张图搞定Java面向对象

刚开始学习Java的时候,一个人跌跌撞撞摸索着往前走,很多东西理解的也懵懵懂懂,后来实践的多了,才慢慢清楚:许多东西虽然很基础但是却很重要,是需要反复思考和加深理解的,[Java面向对象学习]一张图搞定Java面向对象,分享一些归纳总结后的技术干货,一张图能搞定的事,绝对不长篇大论. 大家都知道,Java面向对象是Java的一个核心,也是初学者的一个难点,所以我们从这里开始,Let's go ! Java面向对象 面向对象(Oriented Object) 是相对于面向过程而言的,过程其实就是函

JAVA学习(五):Java面向对象编程基础

Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它采用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的. 1.OOP的3个特性(封装.继承和多态性) 封装是类的基础,指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部,调用这些类时只需直接使用类预留的接口就可以了. 继承提供了子类自动拥有父类数据结构和方法的机制,它表示类之间的一种关系. 多态指使一个对象被看成另一个对

JAVA面向对象之对象和类

Java是一种面向对象的编程语言,面向对象在整个Java的学习中属于重中之重,从这一篇博客开始,将逐步为大家介绍Java面向对象的相关知识,这一偏将为大家介绍对象和类的概念以及如何定义类和创建对象. 一.对象和类的概念 1.对象 以一个人为例,对于人,我们可以从他所具有的特征和所具有的行为来进行分析. 特征:体重.身高.性别.年龄...... 行为:吃饭.睡觉.说话...... 上面的例子就是对现实世界中的具体事物进行的描述,这些具体的事务就是对像,比如一个人.一辆车.从以上的分析还可以看出,人

JAVA面向对象该怎样才能学好呢!

问题描述 JAVA面向对象里面的门禁系统的面向对象设计好难呀,该怎样才能学好呢,有什么好的方法吗? 解决方案 解决方案二:我也在学有同感顶一下

java面向对象(三)之抽象类,接口

java类 java类分为普通类和抽象类,接口,上一节我大概讲了java类的一般格式,今天将抽象类和接口.同时讲一下它们是怎样存储的. 最重要的是理解为什么要有抽象和接口,这样学下来你猜不会迷茫,才能更好的去使用,所以多看看我写的关于抽象类和接口的目的. 抽象类 目的 为了对代码更好的维护和重用. 解析: 抽象类往往用来表征对问题领域进行分析.设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象. 1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用.这样就可