Java08-java语法基础(七)构造方法

一、构造方法

1、什么是构造方法?

构造方法(类方法)是一个方法名和类名相容的特殊的成员方法。

2、构造方法的作用?

当使用new关键字创建一个对象时,为新建对象在堆内存开辟一个空间之后,Java系统将自动调用构造方法初始化该新建对象。

3、对象初始化过程

二、构造方法的定义与调用

1、定义:

  class 类名{

        [访问权限] 类名(参数表){

      语句体;

          //构造方法没有返回值

    }

  }

2、调用:

类名 对象名 = new 构造方法名(实参表);

3、栈内存、堆内存

  Person p1 = new Person();

  上述语句中有两个对象:引用对象和内存对象

  具体的存储方式如下图:

  注:new运算符开辟的存储区都在堆内存中

三、构造方法:初始化对象

1、方法名必须和类名相同;

2、定义类时,若没有定义构造方法,java会自动生成一个无参的构造方法;若定义了构造方法,将会把自动生成的够造方法覆盖掉。

3、构造方法没有返回值,而普通的成员方法必须要有返回值类型;

4、构造方法只能用new运算符调用,不能用对象名调用;

四、构造方法的重载

1、方法重载:方法名相同,参数列表不同,实现的效果也不同;

2、构造方法的重载:给构造方法传递不同的参数,就能实现不同形式的初始化;

3、构造方法与普通方法的区别:构造方法是类的一种特殊方法,其特殊性如下:

  (1)可以重载;

  (2)方法名与类名相同;

  (3)不能有返回值,不使用return语句;

  (4)不能由编程人员显式的直接调用(即不能通过“对象名.方法名();”的方式调用),只能通过new操作符调用;

  (5)缺省的空构造方法:在java语言中,每个类都至少有一个构造方法,如果累的定义者没有显式的定义任何构造方法,系统将自动提供一个缺省的构造方法;如果定义了一个或多个构造方法,系统将不再缺省。

4、构造方法与普通成员方法的区别?

  (1)构造方法名与类名相同,成员方法自定义;

  (2)构造方法没有返回值,即没有方法类型;

  (3)构造方法由系统调用,用来实例化对象;

Java08-java语法基础(七)构造方法的更多相关文章

  1. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  2. Java语法基础(1)

    Java语法基础(1) 1.      Java是一门跨平台(也就是跨操作系统)语言,其跨平台的本质是借助java虚拟机 (也就是JVM(java virtual mechinal))进行跨平台使用. ...

  3. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  4. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  5. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

  6. Java语法基础学习DayEighteen(常用类)

    一.String类 1.特点 String代表不可变的字符序列,底层用char[]存放. String是final的. 2.内存解析 3.常用方法 int length() char charAt(i ...

  7. JAVA语法基础作业——动手动脑以及课后实验性问题 (八)

    一.动手动脑 运行AboutException.java示例,了解Java中实现异常处理的基础知识. 1)源代码 import javax.swing.*; class AboutException ...

  8. 黑马程序员——【Java基础】——Java语法基础

    ---------- android培训.java培训.期待与您交流! ---------- 一.关键字 1.定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有的字母都为小写. ...

  9. java语法基础(三)

    类和对象 面向对象语言概述 java是一种面向对象的语言,什么是面向对象的语言? 要搞清楚什么是面向对象语言,我们需要相对的了解一下面向过程的语言. java入门阶段,我们又给大家说过一些语言的分类, ...

  10. java语法基础(一)

    这个是自己前两年做java视频教程时候的课件.感兴趣的同学可以参考下. 这里是纯粹的语法行总结. editplus的使用 选择项目目录 打开editplus 左侧目录导航栏 可以打开盘符,文件夹 可以 ...

随机推荐

  1. jquery接触初级-----ajax 之:load()方法

    jquery _ajax 请求主要有几种方式:load(),$.get(),$.post(),$.ajax(),$.getScript(),$.getJson() 1.load()方法 格式:load ...

  2. 分页插件 PageHelper

    一步:pom 依赖 二步:controller层 三步:id调用了三个包,org.n3r.idworker的包,这是一体的不用修改,调用即可生成,电商,腾讯都会用这个 , 前三位是年日 四步:serv ...

  3. css3的2D和3D的转换

    一:2D转换: 通过 CSS3  transform转换,我们能够对元素进行移动.缩放.转动.拉长或拉伸. 2D移动:translate().使用translate()函数,你可以把元素从原来的位置移 ...

  4. js 表单序列化为json对象

    $.fn.serializeJson = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () ...

  5. Java 中 == 和 equals 的区别

    有一段时间,== 和 equals 的区别一直困扰着我.因为涉及到Java的内存机制,然而Java的内存机制又是比较抽象的东西,所以对那时候的我来说,实在是很难理解. == 和 equals 最大的区 ...

  6. Docker网络及命令

    Docker常用命令 docker version #查看版本 docker search centos #搜索可用docker镜像 docker images 查看当前docker所有镜像 dock ...

  7. vs2017中char* str = "1234asd56";会报错,——const char*类型的值不能用于初始化char*类型的实体

    原因: "1234asd56"是常量 ,正确的写法本身就是:const char* str = "1234asd56"; 之所以之前的vs版本可以写成char* ...

  8. Manifest File

    [Manifest File] on every build, webpack generates some webpack runtime code, which helps webpack do ...

  9. 安装FP

    一.安装Oracle 11.2 64-bit数据库 1.安装数据库软件并将SEINESCM数据库还原到服务器上, 2.配置监听和TNS信息 二.安装数据库32位客户端(为SSIS配套使用).安装ORA ...

  10. 如何用 Postman 处理 json请求格式

    下边是其他博友写的 http://blog.163.com/huan12_8/blog/static/130519090201611711213719/