java定义构造方法_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定义构造方法_JAVA基础学习之路(三)类定义及构造方法相关推荐
- java 注解 对象_Java基础-学习使用Annotation注解对象
Java基础-学习使用Annotation注解对象 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某 个时刻非常方便地使用这些数据 1-1:基本语法 Java S ...
- java的时间日期类_Java基础学习:日期时间类
Date 类 所在的包:java.util.Date Date 类表示特定的瞬间,精确到毫秒.创建对象的值为从1970年1月1日00:00:00 到当前系统显示时间所经历的毫秒数. 例如:public ...
- typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)
提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...
- java 多线程 总结_java基础总结大全(三)多线程
三.多线程: 1.进程和线程: 进程:正在进行的程序.每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 线程:进程内部的一条执行路径或者一个控制单元. 两者的区别: 一个进程 ...
- java用构造方法定义book类_JAVA基础学习之路(三)类定义及构造方法
类的定义及使用 一,类的定义 classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intn ...
- java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?
一般的类和方法,只能使用具体的类型,要么是基础数据类型,要么是自定义类. 如果要编写可以应用与多种类型的代码,这种刻板的限制对代码的束缚就会很大. 泛型的字面概念: 适合用于许多类型. 在面向对象中, ...
- java冰法_Java基础学习笔记二 Java基础语法
注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /*这是 * 一段注释, * 它跨越了多个行*/ public void ...
- java string类方法_Java基础学习——String类及其方法
String类概述 该类被final修饰,无子类,不可被复写.创建的对象一旦初始化,其内容不可被改变. String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串 ...
- java表达式语句_Java基础知识笔记第三章:运算符表达式语句
算术运算符与表达式 操作符描述例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * B ...
最新文章
- 【CV】深度学习中Epoch, Batch, Iteration的含义
- 性能优化:Sql语句中HINT不起作用
- AChartEngine中的Renderer和DataSet介绍
- 【转】ubuntu 11.10(32位系统)下编译android源码
- SAP Spartacus B2B ListComponent响应回车事件的实现
- 基于E18-2G4U04B的ZigBee3.0无线数据抓包安装方法
- geoserver动态颜色参数样式、动态sql配置实现
- Java-变量、常量
- plsql developer连接oracle--本地不安装oracle
- Macbook怎么关闭磁盘“未正确推出”提示
- Jersey 异常处理
- linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
- 在线电子名片html,HTML5 个人信息卡片(电子名片)模板
- 重复测量方差分析步骤汇总
- 移植MyEclipsenbsp;Web项目到Ecli…
- Linux如何测试驱动性能,掌握 Linux PC 性能之基准测试
- 使用PLAN法提升执行力——笔记与答案
- Lightroom 中照片的修改信息储存在哪了?
- 关于大学计算机相关专业学习路线的见解与分析
- 百度前端实战训练营第二弹
热门文章
- [译]RabbitMQ教程C#版 - 远程过程调用(RPC)
- AspectCore动态代理中的拦截器详解(一)
- 【GIS风暴】GeoJSON数据格式案例全解
- Apache之三种工作模式和配置性能优化
- Android面试题总结加强版(二)
- 《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧
- 看得懂的设计模式 享元模式python3 最基本(简单)实现
- linux算法设计,嵌入式Linux平台下随机序列算法设计.doc
- mysql的indata文件_【数据分析】MySQL之不能导入本地文件“Loading local data is disable;”...
- 他解决了物理学千年争端,成就肩比牛顿、爱因斯坦,但却鲜有人知......