构造方法

如果要实例化新的对象,那么肯定需要使用关键字new来完成,但是除了new这个关键字之外,还有可能在对象实例化时为其进行一些初始化的准备操作,这个时候就需要构造方法的支持了

构造方法本身是一种特殊的方法,它只会在新对象实例化的时候调用,其定义原则:方法名称与类名称相同,没有返回值类型声明,同时构造方法也可以进行重载。

定义构造方法
class Book { 				// 定义一个新的类
/**
* Book类无参构造方法
*/
public Book() { // 构造方法
System.out.println("************************");
}
}
public class TestDemo {
public static void main(String args[]) {
Book book = null ; // 声明对象不调用构造
book = new Book() ; // 实例化对象调用构造
}
}
程序执行结果:
************************
利用构造方法为属性赋值

class Book { // 定义一个新的类
private String title; // 书的名字
private double price; // 书的价格
/**
* Book类构造方法,用于设置title与price属性的内容
* @param t title属性内容
* @param p price属性内容
*/
public Book(String t,double p) { // 定义构造方法
setTitle(t) ; // 调用本类方法
setPrice(p) ; // 调用本类方法
}
public void setTitle(String t) {
title=t; } public void setPrice(double p) {
price= p; }
// setter、getter public String getTitle() {
return title;
}
public double getPrice() {
return price;
}
public void getInfo() {
System.out.println("图书的名称"+title+",价格"+price); }
}
public class TestDemo {
public static void main(String args[]) {
Book book = new Book("Java开发", 69.8); // 声明并实例化对象
book.getInfo(); // 调用方法
}
} 程序运行结果:
图书的名称Java开发,价格69.8
构造方法重载

构造方法本身也属于方法行列,那么可以针对于构造方法进行重载,但是构造方法由于其定义的特殊性,所以在构造方法重载时,要求只注意参数的类型及个数即可。

class Book { 			// 定义一个新的类
private String title; // 书的名字
private double price; // 书的价格
/**
* Book类无参构造方法
*/
public Book() { // 无参的,无返回值的构造方法
System.out.println("无参构造") ;
}
/**
* Book类构造方法,用于设置title属性的内容
* @param t title属性内容
*/
public Book(String t) { // 有一个参数的构造
title = t ; // 直接为属性赋值
System.out.println("有一个参数的构造") ;
}
/**
* Book类构造方法,用于设置title与price属性的内容
* @param t title属性内容
* @param p price属性内容
*/
public Book(String t,double p) { // 有两个参数的构造
title = t ; // 直接为属性赋值
price = p ;// 直接为属性赋值
System.out.println("有两个参数的构造") ;
}
// setter、getter略
public void getInfo() { // 此方法将由对象调用
System.out.println("图书名称:" + title + ",价格:" + price);
}
}
匿名对象

如果一个对象没有则称为匿名对象,按照之前的内存关系来讲:对象的名字可以解释为在栈内存中保存,而对象的具体内容(属性)在堆内存之中保存,这样一来,没有栈内存指向堆内存空间,就是一个匿名对象

new Book("Java开发", 69.8).getInfo(); // 匿名对象

Java基础_0304:构造方法的更多相关文章

  1. Java基础—String构造方法

    Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象 ...

  2. java基础知识 构造方法

    在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面 ...

  3. Java基础-8构造方法

    一).构造方法: 在之前我们提到对象的概念以及对象的实例化等,在这里简单回顾下: Man man = new Man(); 语句创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对 ...

  4. java基础(12):构造方法、this、super

    1. 构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方 ...

  5. 【BigData】Java基础_构造方法的使用

    需求描述 实现上图需求,根据输入的三个人的信息,分别计算出这个三个客户的平均年龄和最大年龄 涉及知识点: ①构造方法 ②字符串切割 ③对象数组 代码实现 代码结构图: package cn.test. ...

  6. 【Java基础】构造方法调用构造方法

    从一个程序开始: class dog { private String name; private String color; private int age; dog(String name) // ...

  7. Java基础 - 面向对象 - 构造方法

    在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法.构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的.每当类实例化一个对象时,类都会自动调用构造方法. 构造方法的特点: 构 ...

  8. Java基础之构造方法及其应用

    构造方法是一种特殊的方法,它是一个与类同名且无返回值类型(连void也不能有)的方法. 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化. 当类实例化一个对象时会自动调用构造方法.构造方 ...

  9. 【Java基础】构造方法 static 块 {}块 执行顺序

    package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...

随机推荐

  1. 第十二节、尺度不变特征(SIFT)

    上一节中,我们介绍了Harris角点检测.角点在图像旋转的情况下也可以检测到,但是如果减小(或者增加)图像的大小,可能会丢失图像的某些部分,甚至导致检测到的角点发生改变.这样的损失现象需要一种与图像比 ...

  2. adb导出安卓 把手机内存文件导入到电脑里 adb安装软件

    记得先找对路劲adb shellls 最上面的ls: ./ 打头的没有权限.而下面的这些acct sdcard等 都有权限. 然后cd sdcardls 看下目录,发现gxm文件夹在sdcard下面. ...

  3. Vue(基础四)_总结五种父子组件之间的通信方式

    一.前言 这篇文章主要总结了几种通信方式: 1.方式一:使用props: [ ]和$emit()  (适用于单层通信) 2.方式二:$attrs和$listeners(适用于多层) 3.方式三:中央处 ...

  4. Qt ------ window下工程项目打包成一个exe程序

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了. 首先,先介绍自己使用的环境.我使用的QT版本是 ...

  5. Jqgrid pager 关于“local” dataType 动态加载数据分页的研究(没好用的研究结果)

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

  6. bzoj3991 LCA + set

    https://www.lydsy.com/JudgeOnline/problem.php?id=3991 小B最近正在玩一个寻宝游戏,这个游戏的地图中有N个村庄和N-1条道路,并且任何两个村庄之间有 ...

  7. Java使用POI导入Excel异常Cannot get a text value from a numeric cell 解决

    异常原因:Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串并写入数据库时,就会出现Cannot get a text value from a numeric c ...

  8. java io系列23之 BufferedReader(字符缓冲输入流)

    转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_23.html 更多内容请参考:java io系列01之 "目录" Buffere ...

  9. Hadoop记录-Hadoop集群添加节点和删除节点

    1.添加节点 A:新节点中添加账户,设置无密码登陆 B:Name节点中设置到新节点的无密码登陆 C:在Name节点slaves文件中添加新节点 D:在所有节点/etc/hosts文件中增加新节点(所有 ...

  10. PHP7 学习笔记(十三)composer详解一

    摘要 从拷贝第三方代码到项目中(1994),到PEAR安装依赖包(1999),再到Composer兴起(2012),PHP社区经历了将近20年的探索.PHP这门古老的语言,也在不断的发展更新,在web ...