构造方法

如果要实例化新的对象,那么肯定需要使用关键字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. 第三十六篇-FloatingActionButton的使用

    效果图: 准备两张图片,一张作为桌面背景,一张作为那个悬浮的加号.放在mipmap下面. 首先,添加Imageview作为桌面背景,并设置扩充整个屏幕.接着,添加一个悬浮按钮,放在右下角,可以对悬浮按 ...

  2. java利用线程池处理集合

    java利用线程池处理集合 2018年07月23日 17:21:19 衍夏成歌 阅读数:866   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/s ...

  3. TestNg 11. 超时测试

    前沿:多久时间没有响应,就是超时. 代码:用timeOut这个属性,超过规定的时间就是fail,不超过就是success package com.course.testng; import org.t ...

  4. Codeforces Round #523 (Div. 2) B Views Matter

    传送门 https://www.cnblogs.com/violet-acmer/p/10005351.html 这是一道贪心题么???? 题意: 某展览馆展览一个物品,此物品有n堆,第 i 堆有a[ ...

  5. javaSE eclipse tomocat安装与配置

    ---恢复内容开始--- javaSE       下载:       第一步:百度收索jdk downlaod  下载地址:https://www.oracle.com/technetwork/ja ...

  6. JVM高手之路七(tomcat调优以及tomcat7、8性能对比)

         版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lirenzuo/article/details/77164033 因为每个链路都会对其性能 ...

  7. python中执行shell命令的几个方法小结

    原文 http://www.jb51.net/article/55327.htm 最近有个需求就是页面上执行shell命令,第一想到的就是os.system, os.system('cat /proc ...

  8. MyBatis-generator-Maven方式

    一.配置依赖 1.依赖信息 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project x ...

  9. 设计模式---接口隔离模式之代理模式(Proxy)

    一:概念 代理模式(Proxy Pattern)就是为其他对象提供一种代理以控制对这个对象的访问. 比如: 智能指针 为别人做嫁衣 所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端 ...

  10. Linux记录-使用python临时搭建web服务器

    python2: python -m SimpleHTTPServer 8888 python3: python -m http.server 8888 wget   ip:8888/文件