Java基础_0304:构造方法
构造方法
如果要实例化新的对象,那么肯定需要使用关键字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:构造方法的更多相关文章
- Java基础—String构造方法
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象 ...
- java基础知识 构造方法
在java里面,构造方法也就是构造函数 构造函数=构造方法;构造方法是一种特殊的方法,具有以下特点.(1)构造方法的方法名必须与类名相同.(2)构造方法没有返回类型,也不能定义为void,在方法名前面 ...
- Java基础-8构造方法
一).构造方法: 在之前我们提到对象的概念以及对象的实例化等,在这里简单回顾下: Man man = new Man(); 语句创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对 ...
- java基础(12):构造方法、this、super
1. 构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方 ...
- 【BigData】Java基础_构造方法的使用
需求描述 实现上图需求,根据输入的三个人的信息,分别计算出这个三个客户的平均年龄和最大年龄 涉及知识点: ①构造方法 ②字符串切割 ③对象数组 代码实现 代码结构图: package cn.test. ...
- 【Java基础】构造方法调用构造方法
从一个程序开始: class dog { private String name; private String color; private int age; dog(String name) // ...
- Java基础 - 面向对象 - 构造方法
在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法.构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的.每当类实例化一个对象时,类都会自动调用构造方法. 构造方法的特点: 构 ...
- Java基础之构造方法及其应用
构造方法是一种特殊的方法,它是一个与类同名且无返回值类型(连void也不能有)的方法. 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化. 当类实例化一个对象时会自动调用构造方法.构造方 ...
- 【Java基础】构造方法 static 块 {}块 执行顺序
package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...
随机推荐
- [模板]ETT
解:splay维护括号序列,就是进子树一次出子树一次.树上每个点直接记录这两个点的编号. 建树的时候按照分配的编号建树. #include <bits/stdc++.h> typedef ...
- MySQL表结构的优化和设计
仅供自己学习 结论写在前面: 1.给字段选取最合适的数据类型 2.数据类型的宽度尽可能的小 3.给where条件的字段设置索引 4.允许部分数据冗余 5.字段要尽可能的设置为not null,特别 ...
- _future_用法总结
写这篇文章主要是参考以下两篇博客 https://blog.csdn.net/stan_pcf/article/details/60465665 https://www.liaoxuefeng.com ...
- keepalived+LVS实现网站负载均衡和HA
如上图所示,102和103是内网nginx服务器,100和101是边界LB,clinet是1,这个实验是为了实现在LB上虚拟出一个VIP,client通过访问该VIP,来动态负载到两台内网nginx服 ...
- (递推)codeVs1011 && 洛谷P1028 数的计算
题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1. 不 ...
- display详解
css中的display属性 display属性是我们在前端开发中常常使用的一个属性,其中,最常见的有: none block inline inline-block inherit 下面,我将按照顺 ...
- Http如何利用304让浏览器去更新数据
ETag 是 Entity Tag 的缩写,中文译过来就是实体标签的意思.在HTTP1.1协议中其实就是请求HEAD中的一个属性而已. HTTP/1.1 200 OK Date: Mon, 23 Ma ...
- script ajax / XHR / XMLHttpRequest
s 利用XHR 调试发送form data表单数据,F5键刷新form表单URL ,http请求地址,获取token,提交. 如:http://pcp.cns*****.com/spcp-web/vm ...
- Presto JVM.config
Presto 如果启动时候 指定 CMS,那么 launcher run 会提示 G1 回收算法是 推荐的垃圾回收算法,针对 Presto 大内存 回收,G1 暂时 应该是最稳妥的选择,调整之后大约如 ...
- 【MSSQL】SQL Server 设置用户只能查看并访问特定数据库
#背景 SQL Server实例上有多个服务商的数据库,每个数据库要由各自的服务商进行维护, 为了限定不同服务商商的维护人员只能访问自己的数据库,且不能看到其他服务商的数据库,现需要给各个服务商商限定 ...