java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法
类的定义及使用
一,类的定义
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();时,内存情况如下:
为属性赋值之后,如下
2.分步创建对象,实例化
Book monney = null;
monney = new Book();
任何情况下,只要看见了关键词new,就表示开辟堆内存,只要开辟了堆内存,一旦堆内存空间开辟了,里面就会有对象中所有属性,所有属性的内容为默认值
实例化对象其实就是开辟堆内存
三,类的封装
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();时使用,而普通的方法实例化对象后可以多次调用
构造方法的作用:在 类对象实例化的时候设置属性的初始化内容,即构造方法是为属性初始化准备的,一个类中至少保留一个构造方法
java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法相关推荐
- java的时间日期类_Java基础学习:日期时间类
Date 类 所在的包:java.util.Date Date 类表示特定的瞬间,精确到毫秒.创建对象的值为从1970年1月1日00:00:00 到当前系统显示时间所经历的毫秒数. 例如:public ...
- java定义构造方法_JAVA基础学习之路(三)类定义及构造方法
类的定义及使用 一,类的定义 classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intn ...
- typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)
提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...
- Java基础学习——第十章 枚举类注解
Java基础学习--第十章 枚举类&注解 一.枚举类(enum) 1. 枚举类的概念 枚举类:类的对象只有有限个,确定的 线程状态:创建.就绪.运行.阻塞.死亡 当需要定义一组常量时,强烈建议 ...
- 2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出“方法 method() 被
2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出"方法 metho ...
- Java学习之路3——方法定义、调用【重拾Java】
Java学习之路3--方法定义.调用[重拾Java] 方法定义 为什么要写方法 方法完整的定义形式.调用 方法定义的格式 修饰符 返回值类型 返回值 调用格式 方法重载 方法定义 为什么要写方法 对于 ...
- WiFi基础学习到实战(三:WiFi网络“物理层”)
欢迎大家一起学习探讨通信之WLAN.上节我们对802.11标准基于OSI模型,在"数据链路层"的定义进行了解,数据传送经过LLC层被封装为一个MSDU,通过MAC层封装为一个MPD ...
- 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录
目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...
- 电子书 鸟哥的Linux私房菜 (基础学习篇 第三版).pdf
<鸟哥的Linux私房菜 (基础学习篇 第三版)>是颇具知名度的Linux入门书<鸟哥的Linux私房菜:基础学习篇>的全新版,全面而详细地介绍了Linux操作系统. 全书分为 ...
最新文章
- 人工智能可落地项目总结
- php 数组键值分离,array_keys array_values::PHP数组键名于键值分离
- 计组(唐朔飞)第一章自我总结
- 【Linux】一步一步学Linux——alias命令(205)
- sqlyog怎么设置默认值_物联网卡三网APN设置
- python 报错继续执行_Python报错不要慌,这三个关键词帮你解决问题!
- emctl start dbconsole失败问题的解决
- 经常看到一种说法,说未来普通人翻身,将会越来越难
- Endianness
- 马尔科夫决策过程(MDP) : BlackJack (MC-Off Policy)
- C语言学生管理系统(链表实现)
- mysql宾馆客房管理系统视频_java swing mysql实现的酒店宾馆管理系统项目源码附带视频指导运行教程...
- linux mp4box安装,视频处理利器 MP4Box常用的12个命令
- CSDN/博客园复制代码空格报错问题解决
- Stylus入门教程--实例(1)
- 自学PHP 环境搭建
- matlab 图片RGB颜色提取
- effective c++ 学习笔记之 Shifting from c to c++
- 究竟什么时候需要用RTOS?
- 基于MATALB的多光谱影像与全色影像(高分辨率)的融合的几种方法