Java程序编译器是根据代码结构来进行编译处理的,执行的时候也是根据代码结构来处理的。

如果在构造方法上使用void,那么此结构就会与普通方法的结构相同,这样编译器会认为此方法是一个

普通方法,而普通方法与构造方法最大的区别在于构造方法是在类对象实例化的时候调用的,而

普通方法是在类对象实例化产生之后调用的。

举例:

public class Student{

  private String name;

  //定义Student有参构造方法
public Student(String name){
this.name = name;
System.out.println("调用Student有参构造方法,初始化Student name");
} //定义getName()方法,获取Student name
public String getName(){
System.out.println("调用getName(),获取Student name");
return name;
} public static void main(String[] args) {
Student student = new Student("Jack Ma");
String studentName = student.getName();
System.out.println("学生姓名:" + studentName);
}
}

运行Debug模式,查看运行结果

调用Student有参构造方法,初始化Student name
调用getName(),获取Student name
学生姓名:Jack Ma

分析:

    Student student = new Student("Jack Ma");

1、通过new Student() 为Student 在堆内存中创建一个内存空间,此时name=null
2、调用Student有参构造方法Student(String name),通过this.name = name为Student name进行初始化,
此时name=Jack Ma。由此可知,构造方法是在类对象实例化的时候调用的。

    String studentName = student.getName();
System.out.println("学生姓名:" + studentName);

3、类对象student实例化后,调用getName(),获取Student name。可见,getName()作为普通方法是在类对象实例化产生之后调用的。
4、最后打印结果:学生姓名:Jack Ma。

Java面试 - 在Java中, 既然构造方法是一个方法,那么为什么不使用void 定义呢?的更多相关文章

  1. java Class中得到构造方法Constructor、方法Method、字段Field

    常用方法: Constructor类用于描述类中的构造方法: Constructor<T> getConstructor(Class<?>... parameterTypes) ...

  2. 【Java面试】Spring中 BeanFactory和FactoryBean的区别

    一个工作了六年多的粉丝,胸有成竹的去京东面试. 然后被Spring里面的一个问题卡住,唉,我和他说,6年啦,Spring都没搞明白? 那怎么去让面试官给你通过呢? 这个问题是: Spring中Bean ...

  3. [Java面试二]Java基础知识精华部分.

    一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...

  4. 【Java面试】java基础篇

    总结个人的面试经历以及一些网上的的面试题,以供以后面试与巩固java基础. 1.String.StringBuilder和StringBuffer的区别 String用于存储不可变字符串的类,Stri ...

  5. Java面试之Java基础问题答案口述整理

    Java面试之基础问题答案口述整理 面向对象的理解 面向对象思想就是在计算机程序设计过程中,把具体事物的属性特性和行为特征抽象出来,描述成计算机事件的设计思想.它区别于面向过程的思想,强调的是通过调用 ...

  6. java面试2(java技术栈和Hollis面试内容分享)

    1.什么是java虚拟机? java虚拟机(JVM)是一个可执行java字节码的虚拟机进程,java源文件被编译成能被java虚拟机可执行的字节码文件. 2.什么是平台无关性,java是如何做到平台无 ...

  7. Java面试大纲-java面试该做哪些准备,java开发达到这样的水平可以涨工资

    Java培训结束,面临的就是毕业找工作.在找工作时,就要针对性地做充分的面试准备.准备不充分的面试,完全是浪费时间,更是对自己的不负责. 上海尚学堂Java培训整理出Java面试大纲,其中大部分都是面 ...

  8. java面试之----堆(heap)、栈(stack)和方法区(method)

    JAVA的JVM的内存可分为3个区:堆(heap).栈(stack)和方法区(method)也叫静态存储区. 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的 ...

  9. Java面试17|Java基础

    Linux上配置Java基础环境: https://www.cnblogs.com/kerrycode/archive/2015/08/27/4762921.html 1.final相关 (1)fin ...

随机推荐

  1. Bzoj 3333 高级打字机(主席树)

    3333 高级打字机 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能 ...

  2. Springboot @ConditionalOnProperty注解

    最近看了一段代码其中用到了@ConditionalOnProperty注解,直接没有了解过这个注解,今天看到了顺便了解一下 具体代码如下 @Configuration public class Web ...

  3. Git项目代码统计-Python3版gitstats

    gitstats是一个Git项目统计工具,可以统计git项目代码提交量,提交者的贡献量及活动热力图等信息,如下图. gitstats基于Python2.7,使用git log命令生成统计信息,基于gn ...

  4. Linux MySQL 储存中文失败简单解决办法

    如图,保存的中文都变成了??? show create table table_name;可以查到表的默认编码 这里看到默认的字符集是latin1,而不是utf8 需要修改 alter databas ...

  5. Why use swap when there is more than enough RAM.

    Swappiness is a property of the Linux kernel that changes the balance between swapping out runtime m ...

  6. Zookeeper简介&应用场景

    简介 将zookeeper看作一个服务,为了服务的高可靠,这个服务也是集群组成的,少数(少于n+1)机器挂掉可以通过选举产生一个leader,不会影响这个服务可用性 主要应用场景: 配置文件管理 集群 ...

  7. Error: unable to load xmlsec-openssl library

    yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel

  8. tornado异步请求响应速度的实例测试

    tornado异步请求响应速度的实例测试

  9. API 设计 POSIX File API

    小结: 1. https://mp.weixin.qq.com/s/qWrSyzJ54YEw8sLCxAEKlA API 设计最佳实践的思考 谷朴 阿里技术 昨天   阿里妹导读:API 是模块或者子 ...

  10. VS2017调试程序时 无法启动web iis或者提示ID为***的进程未启动

    打开项目的.csproj文件,定位到<WebProjectProperties>,把关于IIS的配置<DevelopmentServerPort>.<Developmen ...