java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法

本文介绍了Java中的类定义、构造方法以及封装概念。通过实例展示了如何使用构造方法初始化对象,并强调了构造方法在对象实例化时的重要性。同时,文章探讨了类的封装,建议将属性设为private并通过setter和getter方法进行访问控制。
摘要由CSDN通过智能技术生成

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

类的定义及使用

一,类的定义

classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intnum) {//定义一个方法return price*num;

}

}public classtest2 {public static voidmain(String args[]) {

Book monney= newBook();//声明并实例化对象

monney.price= 10;

monney.num= 20;

System.out.println(monney.getMonney(10,20));

}

}

二,内存分析

类是引用类型,创建时会申请分配内存

堆内存:保存每一个对象的属性,需要new关键字才可以创建

栈内存:保存一块堆内存的地址

1,当使用Book bk = new Book();时,内存情况如下:

29a397020f60540abf84472993639752.png

为属性赋值之后,如下

0cc04dd57a5643a2549952abe7ea67df.png

2.分步创建对象,实例化

Book monney = null;

monney = new Book();

任何情况下,只要看见了关键词new,就表示开辟堆内存,只要开辟了堆内存,一旦堆内存空间开辟了,里面就会有对象中所有属性,所有属性的内容为默认值

2af49a3c0e1da89540af91744aa46b38.png

实例化对象其实就是开辟堆内存

三,类的封装

classBook {private intprice;private intnum;public void setPrice(intp) {

price=p;

}public void setNum(intn) {

num=n;

}public intgetPrice() {returnprice;

}public intgetNum() {returnnum;

}public int getMonney(int price, intnum) {return price*num;

}

}public classtest2 {public static voidmain(String args[]) {

Book monney= newBook();

monney.setPrice(10);

monney.setNum(20);

System.out.println(monney.getMonney(10,20));

}

}

在构造类的过程中,属性尽量都写成private,这样,属性就对外部隐藏。通过setter方法设置属性值,getter方法获取属性值。外部若要访问类的属性,只有通过setter方法。

四,构造方法

类名  对象名 = new 类名();

1.类名:类的名字,决定对象的属性和方法

2.对象名:对象的唯一标识

3.new:开辟堆内存,没有new则无法实例化对象

4.类名()  实际上是调用了一个和类名相同的方法,即构造方法

我们从来没有定义过构造方法,之所以可以使用,是java在编译时,为我们添加了一个名称与类相同,无参数,无返回值的方法

构造方法只在实例化新对象时使用一次,就是在book = new Book();时使用,而普通的方法实例化对象后可以多次调用

构造方法的作用:在 类对象实例化的时候设置属性的初始化内容,即构造方法是为属性初始化准备的,一个类中至少保留一个构造方法

原文链接:https://www.cnblogs.com/xhnxhnu/p/9113315.html

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值