JAVA基础学习之路(三)类定义及构造方法

类的定义及使用

 

一,类的定义

class Book {//定义一个类int price;//定义一个属性int num;public static int  getMonney(int price, int num) {//定义一个方法return price*num;}
}public class test2 {public static void main(String args[]) {Book monney = new Book();//声明并实例化对象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,就表示开辟堆内存,只要开辟了堆内存,一旦堆内存空间开辟了,里面就会有对象中所有属性,所有属性的内容为默认值

 

 

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

 

三,类的封装

class Book {private int price;private int num;public void setPrice(int p) {price = p;}public void setNum(int n) {num = n;}public int getPrice() {return price;}public int getNum() {return num;}public  int  getMonney(int price, int num) {return price*num;}
}public class test2 {public static void main(String args[]) {Book monney = new Book();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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子火折子的电路原理

d▲本文要分析的电路看古装剧时,不时可以看到这样的场景:有人从怀里掏出一个“火折子”,对着吹一吹就点着了火,觉得很神奇:更加神奇的是,有才的电子工程师们,重新发明了火折子,也就是…

如何快速构建嵌入式全栈知识体系?

嵌入式是一门交叉学科。一个嵌入式电子产品(比如手机)从底层到上层,一般会涉及半导体芯片、电子电路、计算机、操作系统、多媒体等不同专业领域的知识。很多从事嵌入式开发的朋友,通常来自不同的专业(电子、电气、计算…

台湾高僧称游戏中杀人是罪业死后要下地狱

台湾著名高僧净空法师的一段谈因果报应的视频,近来被上传到网络上,引发网友特别是游戏玩家的极大反应。净空法师在这段视频中说,在电子游戏中杀人所造下 的罪业和杀真人是相同的,死后肯定会下阿鼻地狱,出来后也还要慢慢…

嵌入式系统开发者需要掌握什么技术?

大家好,我是小嵌,在知乎上看到这个问题,其中有一个答主的答案很经典,特此分享给大家。说实话,问题中嵌入式开发这个话题有点庞大,毕竟它涵盖的领域和范围很宽泛。作为一个在嵌入式软件开发方面工作了十多年…

做决定要趁早

之前接触的一个读者朋友,几个月前跟我咨询了问题,那时候因为有个决定困扰他,已经快抑郁了,不过到现在为止,还没有做决定。做决定这个事情,我希望不要拖太久,不要咨询太多无关的人,做…

2009第二届C++技术大会即将在上海隆重召开

2009第二届C技术大会即将在上海隆重召开 作为软件开发语言的翘楚,C对于现代软件的发展功不可没,特别是在系统软件开发领域,C扮演着关键的角色。中国作为全球软件产业最具潜力的市场,越来越多的企业认识到了C及相关系统软件技术在软…

大数据开发你需要知道的十个技术

前言 “当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。” – WhyTheLuckyStiff 汇总一些自己在大数据路上走过的弯路,愿大家不再掉坑… 1.分布式存储 传统化集中式存储存在已有一段时间。但大数据并非真的适合集中式存储架构。Hadoop设计…

华为这个事,是不是刷KPI?

最近闹的比较热闹的事情是&#xff0c;华为有人提交到Linux 上的代码被审核员点名批评刷KPI&#xff0c;并且&#xff0c;这个邮件还上了头条。提交的代码修改如下From: Zhen Lei <thunder.leizhenhuawei.com> To: Kees Cook <keescookchromium.org>,Anton Voronts…

前端小demo——全选和全不选

模拟购物车&#xff0c;实现全选或者全不选&#xff0c;或者其中任意一件单品单选的效果。 点击顶部复选框实现全选 列表中任意一项未选中&#xff0c;顶部复选框就是未选中的状态 <!DOCTYPE html> <html><head lang"en"><meta charset"UT…

毕业2年,我的工作小结

文章转自我的读者朋友&#xff0c;他毕业后从事的是BSP开发工作&#xff0c;主要做LCD模块&#xff0c;我们算是认识比较久&#xff0c;刚毕业那会聊的也挺多&#xff0c;时间过得很快&#xff0c;想不到他已经毕业两年了。最近几天公司&#xff0c;公司的小鲜肉多了起来。我偶…

Something about WinCE6.0 R3

Windows Embedded家族 Windows Embedded CE概览 WinCE6.0 R3新增组件 R3的发布让WinCE6.0如虎添翼 嵌入式系统的Silverlight 引入Silverlight后UI新的体系结构 触摸手势的支持将彻底改变用户体验

我现在都在这里买元器件了!

记得上大学那会做单片机项目需要买元件&#xff0c;我们就需要跑到市中心去买&#xff0c;绕过大大小小的街道&#xff0c;可以看到坐在柜台的老板&#xff0c;然后跟老板拉扯几句&#xff0c;然后进入大包小包的买卖中。做一个最小系统板至少也要花个小100块钱&#xff0c;大学…

高考失利要不要复读?

对于我&#xff0c;如果考不好&#xff0c;我一定会复读。这个事情在每个人身上可能会不同&#xff0c;所以先从我说起&#xff0c;我出生在一个非常贫穷的农民家庭&#xff0c;我有好几个表哥&#xff0c;还有几个堂哥&#xff0c;甚至于我哥&#xff0c;他们读书都非常差&…

我是这样分析Linux性能问题的

在互联网公司普遍“996”的大环境下&#xff0c;大部分做应用的开发者&#xff0c;大都将精力集中在业务代码的优化和调配上&#xff0c;忽略了对 Linux 内核的学习。而且&#xff0c;这部分知识本身就很复杂&#xff0c;所以学习成本也比较高。但是&#xff0c;只要你经历过公…

随便聊聊,Linux 中的环境变量

大家好&#xff0c;今晚说点简单的。环境变量环境变量在进行linux开发过程中经常碰到&#xff0c;那什么是环境变量呢&#xff1f;很多朋友在刚学习Linux的时候对环境变量不是特别理解&#xff0c;变量不应该是在编程语言中类似于全局变量和局部变量吗&#xff1f;怎么又来了个…

IntelliJ IDEA使用教程(很全)

这个编辑器我就不再多做介绍了。直接开始新建maven hello world 的Java web项目啦 你电脑上得有jdk1.7&#xff0c;或者1.8&#xff0c;然后就是maven3.x吧&#xff0c;再有就是tomcat7以上吧。还得有我这个编辑器。这些是准备条件 下面就直接开始看图啦&#xff1a; 这个我刚刚…

U-Boot之代码调试

“ 让调试U-Boot不再困难”本文介绍U-Boot的两种调试方法&#xff0c;一种是基于代码级别&#xff0c;另外一种是基于工具进行在线调试。01—DEBUG宏U-Boot自带DEBUG宏&#xff0c;打开该宏定义之后&#xff0c;会增加许多的内在打印信息供开发人员参考。这个宏定义的开关可以通…

快两年的时间,我都干了啥

‍‍‍‍大家好,我是写代码的篮球球痴这是一篇总结性的文章&#xff0c;主要是总结这一年多快两年的时间&#xff0c;我都在做了些什么。公司名字我就不说了&#xff0c;知道的人一眼就知道了。我们是一家智能家居的公司。提到智能家居&#xff0c;就一定会涉及网关&#xff0c…

ioremap,你应该知道的事

因为现在使用是dts来表示板级&#xff0c;也就是machine&#xff0c;所以现在我们在内核使用内核映射使用的函数是of_iomap。c代码&#xff1a;struct device_node *node NULL;unsigned int irq_info[3] { 0, 0, 0 };u32 phys_base;switch (idx) {case 0:node of_find_node_…

.NET 二维码生成(ThoughtWorks.QRCode)

引用ThoughtWorks.QRCode.dll &#xff08;源代码里有&#xff09; 1、简单二维码生成及解码代码&#xff1a; //生成二维码方法一private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode QRCodeEnc…