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();时使用,而普通的方法实例化对象后可以多次调用
构造方法的作用:在 类对象实例化的时候设置属性的初始化内容,即构造方法是为属性初始化准备的,一个类中至少保留一个构造方法
相关文章:

Linux下如何查看文档的内容
查看文档内容的命令有:cat tac head nl tail more less odcat命令显示文档的全部内容,当文档较大的时候只显示最后的部分,所以cat命令适合查看内容较少的文档。可加选项-n显示行数(此时空白行也会显示行号)。-b空白行则不显示行号。tac与cat显…

Java中getResourceAsStream的用法
Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种:1. Class.getResourceAsStream(String path) : path 不以’/开头时默认是从此类所在的包下取资源,以’/开头则是从 ClassPath根下获取。其只是通过p…

Asp.Net MVC3 简单入门详解过滤器Filter
为什么80%的码农都做不了架构师?>>> 前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证࿰…

mysql 锁语句_mysql-笔记 事务 锁 语句
Start Transaction 或 begin [work] 开始一个事务,开始一个事务,引起其他未提交的事务提交,引起表锁释放commit 提交事务,永久修改rollback 回滚事务,撤消修改set autocommit 在当前会话状态下 启用或不启用 autocommi…

【收藏】Java多线程/并发编程大合集
(一)、【Java并发编程】并发编程大合集-兰亭风雨 【Java并发编程】实现多线程的两种方法 【Java并发编程】线程的中断 【Java并发编程】正确挂起、恢复、终止线程 【Java并发编程】守护线程和线程阻塞 【Java并发编程】Volatile关键字(上&…

《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第六章 深入理解wi-Fi Simple Configuration...
为什么80%的码农都做不了架构师?>>> 首先感谢各位兄弟姐妹们的耐心等待。本书预计在4月上市发售。从今天开始,我将在博客中连载此书的一些内容。注意,此处连载的是未经出版社编辑的原始稿件,所以样子会有些非专业。 …

iOS 的本地化使用和创建过程
在使用本地化语言之前,来看看本地化语言文件内容的结构(这里我以Chinese为例):"Cancel""取消";"OK""确定";"Tip""信息提示";"Login Faild""登陆失败…

MySQL中改变相邻学生座位_力扣——换座位(数据库的题
小美是一所中学的信息科技老师,她有一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。你能不能帮她写一个 SQL query 来输出小美想要的结果呢?示例:------…

AnsiToUtf8 和 Utf8ToAnsi
在服务端数据库的处理当中,涉及中文字符的结构体字段,需要转为Utf8后再存储到表项中。从数据库中取出包含中文字符的字段后,如果需要保存到char *类型的结构体成员中,需要转为Ansi后再保存。从数据库中取出类型数字的字段后&#…

常见面试题:重写strcpy() 函数原型
已知strcpy函数的原型是 char* strcpy(char* strDest,const char* strSrc); 1.不调用库函数,实现strcpy函数 2.解释为什么要返回char*; 1.strcpy的实现代码 char* strcpy(char* strDest,const char* strSrc) { if((strDest NULL) || (strSrc NULL)) //[1] thro…

mongodb 系列 ~ journal日志畅谈
一 简介 我们来聊聊Journal日志二 核心观点 WAL 日志先行策略三 开启journal流程 在开启journal的系统中,写操作从请求到写入磁盘共经历5个步骤,在serverStatus()中已经列出各个步骤消耗的时间。 1 Write to privateView 2 prepLogBuffer …

java striptrailingzeros_java – 为什么不BigDecimal.stripTrailingZeros()总是删除所有尾随零?...
我做了以下事情MathContext context new MathContext(7, RoundingMode.HALF_UP);BigDecimal roundedValue new BigDecimal(value, context);// Limit decimal placestry {roundedValue roundedValue.setScale(decimalPlaces, RoundingMode.HALF_UP);} catch (NegativeArrayS…

box-shadow属性
一、定义和用法 box-shadow属性 向框添加一个或多个阴影。 二、语法 box-shadow: h-shadow v-shadow blur spread color inset; h-shadow必需。水平阴影的位置。允许负值。 v-shadow必需。垂直阴影的位置。允许负值。 blur可选。模糊距离。 spread可选。阴影的尺寸。 color可选…

秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)
2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) 中, 介绍了 Access的并发上限,及从某种程度上 秋色园QBlog 针…

ldconfig
为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连…

MySQL宽字节注入漏洞分析_宽字节注入
概念单字节字符集: 所有的字符都使用一个字节来表示,比如 ASCII 编码。多字节字符集: 在多字节字符集中,一部分字节用多个字节来表示,另一部分(可能没有)用单个字节来表示。两位的多字节字符有一个前导字节和尾字节。 …

objc runtime 动态增加属性
objective-c中,有类别可以在不修改源码的基础上增加方法 使用运行时库,必须要先引入 objc/runtime.h 可以使用的函数如下: OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy…

C#合并两张表结构相同(列数和列类型都相同)的表
DataTable appendDataTablenew DataTable(); 这个合并的大前提是两张表的结构相同且列的类型也必须相同 否则在赋值时就会出现异常。 for (int i 0; i < hostDt.Columns.Count;i ) { appendDataTable.Columns.Add(hostDt.Columns[i].ColumnName,hostDt.Columns[i].DataType…

erlang调优方法
2019独角兽企业重金招聘Python工程师标准>>> 1. 来自Scaling Erlang的方法 内核调优: # Increase the ipv4 port range: sysctl -w net.ipv4.ip_local_port_range"1024 65535" # General gigabit tuning: sysctl -w net.core.rmem_max16777…

mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介
1.DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户机—服务器的DBMS。服务器部分是 负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务 器的计算机上。2.MySQL Administrator(MySQL管理器)是一个图形交互客户机,用 来简化…

Windows Phone 7编程学习点滴一——页面切换、返回键重载和工具栏
1. 页面切换和对齐方式 2 (1)XAML实现方式 <HyperlinkButton Content"TestPage1" NavigateUri"/TestPage1.xaml" Height"30" HorizontalAlignment"Left" Margin"10,10,0,0" Name"TestPage1Li…

call_user_func用法
1 //有一些函数,名字未知2 //名字在运行状态时,才知道3 4 //例如a(),b(),c()调用哪一个5 // ->index(),reg()?又调用哪一个6 7 function t(){8 echo hello;9 } 10 11 function s(){ 12 echo world; 13 } 14 15 $at; 16 //$a(); 17 18 //在…

构建现代化的命令行工具
文章源于 lambdas.dev 每当我们想要创建一个基于 NodeJS 的命令行工具时,就会衍生出一堆问题需要解决,比如如何准备开发环境,如何打包转译代码,如何使代码在转译后保持可调用的状态同时尽可能的压缩体积, 以及怎样设计…

Java怎么定义图片公共路径_【Java】springboot配置图片访问路径
springboot如何配置,就可以在地址栏输入http://localhost:9090/17AD93E86EB44287BA0D871A37017597.jpg就可以访问到图片回答需要添加下Springboot访问静态资源的Jar文件org.springframework.bootspring-boot-starter-thymeleaf直接去掉这两个配置就行,自…

PHP——文件操作
自己写的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <meta http-e…

linux基础—课堂随笔010_系统启动和内核管理
系统启动和内核管理 Linux: kernelrootfs kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 程序:二进制执行文件 内核设计流派&…

微软技术的变迁
这个课题很大,我只是站在一个普通人的视角上写一下。 微软的看家技术是什么?vb!先有basic,再有操作系统,dos发展到windows,vb一直发展着。然而到达vb6之后,微软转型设计.net 。.net 是什么&…

java initcause_Java 异常
问:java 异常有哪几种,特点是什么?答:异常是发生在程序执行过程中阻碍程序正常执行的错误操作,只要在 Java 语句执行中产生异常,则一个异常对象就会被创建。Throwable 是所有异常的父类,它有两个…

UICollectionView之网络图片解析
1:将SDWebImage文件夹的类库导入工程,创建一个模型对象Model类,并声明好它的属性,再创建一个继承自UICollectionViewCell的自定义类 2:在自定义cell类中重写 - (instancetype)initWithFrame:(CGRect)frame { self [su…

一个中国人看了爽的笑话
某国人好战。古时几乎所有的少壮男丁都被征召去当兵打仗,根本没有时间结婚生子,所以人丁越来越少.当时一个国主就出了一个国策,让所有的男人不论何时何地,都可以随便跟任何女人发生关系,来保持人口的出生率.所以在休战…