广告
返回顶部
首页 > 资讯 > 精选 >Java中构造器和方法有哪些区别
  • 691
分享到

Java中构造器和方法有哪些区别

2023-06-03 04:06:56 691人浏览 薄情痞子
摘要

小编给大家分享一下Java中构造器和方法有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!要学习Java,你必须理解构造器。因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区

小编给大家分享一下Java中构造器和方法有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!





学习Java,你必须理解构造器。因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区别。

我们说构造器是一种方法,就象讲澳大利亚的鸭嘴兽是一种哺育动物。(按:老外喜欢打比喻,我也就照着翻译)。要理解鸭嘴兽,那么先必须理解它和其他哺育动物的区别。同样地,要理解构造器,那么就要了解构造器和方法的区别。所有学习java的人,尤其是对那些要认证考试的,理解构造器是非常重要的。下面将简单介绍一下 ,最后用一个表作了些简单的总结

功能和作用的不同

构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Platypus p1 = new Platypus();

相反,方法的作用是为了执行java代码。

修饰符,返回值和命名的不同

构造器和方法在下面三个方便的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。

返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。

最后,谈谈两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。

"this"的用法

构造器和方法使用关键字this有很大的区别。方法引用this指向正在执行方法的类的实例。静态方法不能使用this关键字,因为静态方法不属于类的实例,所以this也就没有什么东西去指向。构造器的this指向同一个类中,不同参数列表的另外一个构造器,我们看看下面的代码:


public class Platypus { String name; Platypus(String input) { name = input; } Platypus() { this("John/Mary Doe"); } public static void main(String args[]) { Platypus p1 = new Platypus("digger"); Platypus p2 = new Platypus(); } }


在上面的代码中,有2个不同参数列表的构造器。第一个构造器,给类的成员name赋值,第二个构造器,调用第一个构造器,给成员变量name一个初始值 "John/Mary Doe".

在构造器中,如果要使用关键字this,那么,必须放在第一行,如果不这样,将导致一个编译错误。
"super"的用法

构造器和方法,都用关键字super指向超类,但是用的方法不一样。方法用这个关键字去执行被重载的超类中的方法。看下面的例子:

class Mammal { void getBirthInfo() { System.out.println("born alive."); } } class Platypus extends Mammal { void getBirthInfo() { System.out.println("hatch from eggs"); System.out.print("a mammal nORMally is "); super.getBirthInfo(); } }

在上面的例子中,使用super.getBirthInfo()去调用超类Mammal中被重载的方法。
构造器使用super去调用超类中的构造器。而且这行代码必须放在第一行,否则编译将出错。看下面的例子:

public class SuperClassDemo { SuperClassDemo() {} } class Child extends SuperClassDemo { Child() { super(); } }

在上面这个没有什么实际意义的例子中,构造器 Child()包含了 super,它的作用就是将超类中的构造器SuperClassDemo实例化,并加到 Child类中。

编译器自动加入代码

编译器自动加入代码到构造器,对于这个,java程序员新手可能比较混淆。当我们写一个没有构造器的类,编译的时候,编译器会自动加上一个不带参数的构造器,例如:public class Example {}

编译后将如下代码:

public class Example { Example() {} }

在构造器的第一行,没有使用super,那么编译器也会自动加上,例如:

public class TestConstructors { TestConstructors() {} }

编译器会加上代码,如下:

public class TestConstructors { TestConstructors() { super; } }

仔细想一下,就知道下面的代码

public class Example {}

经过会被编译器加代码形如:

public class Example { Example() { super; } }

继承

构造器是不能被继承的。子类可以继承超类的任何方法。看看下面的代码:

public class Example { public void sayHi { system.out.println("Hi"); } Example() {} } public class SubClass extends Example { }

类 SubClass 自动继承了父类中的sayHi方法,但是,父类中的构造器 Example()却不能被继承。

看完了这篇文章,相信你对“Java中构造器和方法有哪些区别”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: Java中构造器和方法有哪些区别

本文链接: https://www.lsjlt.com/news/232817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中构造器和方法有哪些区别
    小编给大家分享一下Java中构造器和方法有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!要学习Java,你必须理解构造器。因为构造器可以提供许多特殊的方法,这个对于初学者经常混淆。但是,构造器和方法又有很多重要的区...
    99+
    2023-06-03
  • php构造方法和java构造方法有哪些区别
    这篇文章主要介绍“php构造方法和java构造方法有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php构造方法和java构造方法有哪些区别”文章能帮助大家解决问题。区别:1、重写子类构造函...
    99+
    2023-06-29
  • php构造方法和java构造方法有什么区别
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php构造方法和java构造方法有什么区别早期的PHP是没有面向对象功能的,但是随着PHP发展,从PHP4开始,也加入了面向对象。PHP的面向对象语法是从JAVA演化...
    99+
    2021-01-17
    php
  • java构造方法和成员方法有什么区别
    Java构造方法和成员方法的区别如下: 特殊性质:构造方法是用于创建对象时调用的特殊方法,而成员方法是对象创建后调用的普通方法。...
    99+
    2023-10-24
    java
  • php构造方法与成员方法的区别有哪些
    本篇内容主要讲解“php构造方法与成员方法的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php构造方法与成员方法的区别有哪些”吧!区别:1、一个类只能有一个构造方法,但是可以有多个成...
    99+
    2023-06-29
  • java中的ArrayList的构造方法有哪些?
    下面由java零基础入门栏目为大家介绍ArrayList的构造方法有哪些,希望对大家的学习有所帮助!一、ArrayList(int initialCapacity)所以当我们要使用ArrayList时,可以 new ArrayList(大小...
    99+
    2022-02-22
    java入门 java ArrayList 构造方法
  • java构造方法的作用有哪些
    Java的构造方法主要有以下几个作用: 创建对象:构造方法用于创建对象的实例,通过调用构造方法可以在内存中分配空间,并初始化对象...
    99+
    2023-10-26
    java
  • java构造方法的特点有哪些
    Java构造方法的特点有以下几个:1. 构造方法与类同名。构造方法的名称必须与类的名称相同。2. 构造方法没有返回类型。构造方法没有...
    99+
    2023-08-23
    java
  • java方法中的构造方法与普通方法的区别
    普通方法大家肯定都见过,有修饰符修饰的方法可以有返回值,也有的没有返回值。而构造方法呢?举个例子应该很快就懂了,当一个类实例化对象的时候,用到的方法就是构造方法,我们可以看到在一个类里面的构造方法并不是从别的类里面引进来的,而是自己本身就有...
    99+
    2021-03-16
    java入门 java 构造方法 普通方法 区别
  • java构造方法的调用方式有哪些
    Java构造方法的调用方式有以下几种:1. 通过new关键字调用:使用new关键字创建对象时,会自动调用该类的构造方法。```MyC...
    99+
    2023-09-01
    java
  • java 方法和函数的区别有哪些
    面向对象的语言叫方法,面向过程的语言叫函数。在java中没有函数这么一说,只有方法一说。实际上方法就是函数,函数就是方法,只是在不同的语言不同的称呼而已。一句话告诉你如何区分函数与方法:函数是大家的函数,方法是类的方法。如何区分一个ITer...
    99+
    2014-07-09
    java教程 java 方法 函数 区别
  • es6与es5的构造函数有哪些区别
    这篇文章主要介绍“es6与es5的构造函数有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6与es5的构造函数有哪些区别”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • java类和结构体的区别有哪些
    Java类和结构体(Struct)是两种不同的概念,有以下区别:1. 定义方式:Java类是面向对象编程的基本单位,通过class关...
    99+
    2023-09-09
    java
  • Java中方法与方法重载的区别有哪些
    本篇文章给大家分享的是有关Java中方法与方法重载的区别有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。方法:Java的方法类似与其他语言的函数,是一段用来完成特定功能的代...
    99+
    2023-05-31
    java 方法重载 ava
  • java构造器的作用有哪些
    Java构造器的作用有以下几点:1. 创建对象:构造器用于创建一个新的对象,并初始化该对象的成员变量。2. 初始化对象的状态:构造器...
    99+
    2023-08-30
    java
  • javascript构造方法的缺点有哪些
    今天小编给大家分享一下javascript构造方法的缺点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2022-10-19
  • Socket与ServerSocket类构造方法有哪些
    这篇文章主要介绍“Socket与ServerSocket类构造方法有哪些”,在日常操作中,相信很多人在Socket与ServerSocket类构造方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Soc...
    99+
    2023-06-22
  • swing的常用构造方法有哪些
    swing的常用构造方法有:1. JFrame():创建一个新的顶层窗口。2. JFrame(String title):创建一个新...
    99+
    2023-08-26
    swing
  • jquery中get和post方法有哪些区别
    这篇文章给大家分享的是有关jquery中get和post方法有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 区别:1、get中数据是在URL...
    99+
    2022-10-19
  • ThinkPHP中I()和create()方法有哪些区别
    这篇文章主要介绍了ThinkPHP中I()和create()方法有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ThinkPHP中I()方法接收数据和create()...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作