类的定义及使用

一,类的定义

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基础学习之路(三)类定义及构造方法相关推荐

  1. java 注解 对象_Java基础-学习使用Annotation注解对象

    Java基础-学习使用Annotation注解对象 注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某 个时刻非常方便地使用这些数据 1-1:基本语法 Java S ...

  2. java的时间日期类_Java基础学习:日期时间类

    Date 类 所在的包:java.util.Date Date 类表示特定的瞬间,精确到毫秒.创建对象的值为从1970年1月1日00:00:00 到当前系统显示时间所经历的毫秒数. 例如:public ...

  3. typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)

    提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...

  4. java 多线程 总结_java基础总结大全(三)多线程

    三.多线程: 1.进程和线程: 进程:正在进行的程序.每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元. 线程:进程内部的一条执行路径或者一个控制单元. 两者的区别: 一个进程 ...

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

    类的定义及使用 一,类的定义 classBook {//定义一个类intprice;//定义一个属性intnum;public static int getMonney(int price, intn ...

  6. java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?

    一般的类和方法,只能使用具体的类型,要么是基础数据类型,要么是自定义类. 如果要编写可以应用与多种类型的代码,这种刻板的限制对代码的束缚就会很大. 泛型的字面概念: 适合用于许多类型. 在面向对象中, ...

  7. java冰法_Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /*这是 * 一段注释, * 它跨越了多个行*/ public void ...

  8. java string类方法_Java基础学习——String类及其方法

    String类概述 该类被final修饰,无子类,不可被复写.创建的对象一旦初始化,其内容不可被改变. String类复写了Object类中的equals()定义了自己的独特内容,该方法用于判断字符串 ...

  9. java表达式语句_Java基础知识笔记第三章:运算符表达式语句

    算术运算符与表达式 操作符描述例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * B ...

最新文章

  1. 【CV】深度学习中Epoch, Batch, Iteration的含义
  2. 性能优化:Sql语句中HINT不起作用
  3. AChartEngine中的Renderer和DataSet介绍
  4. 【转】ubuntu 11.10(32位系统)下编译android源码
  5. SAP Spartacus B2B ListComponent响应回车事件的实现
  6. 基于E18-2G4U04B的ZigBee3.0无线数据抓包安装方法
  7. geoserver动态颜色参数样式、动态sql配置实现
  8. Java-变量、常量
  9. plsql developer连接oracle--本地不安装oracle
  10. Macbook怎么关闭磁盘“未正确推出”提示
  11. Jersey 异常处理
  12. linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
  13. 在线电子名片html,HTML5 个人信息卡片(电子名片)模板
  14. 重复测量方差分析步骤汇总
  15. 移植MyEclipsenbsp;Web项目到Ecli…
  16. Linux如何测试驱动性能,掌握 Linux PC 性能之基准测试
  17. 使用PLAN法提升执行力——笔记与答案
  18. Lightroom 中照片的修改信息储存在哪了?
  19. 关于大学计算机相关专业学习路线的见解与分析
  20. 百度前端实战训练营第二弹

热门文章

  1. [译]RabbitMQ教程C#版 - 远程过程调用(RPC)
  2. AspectCore动态代理中的拦截器详解(一)
  3. 【GIS风暴】GeoJSON数据格式案例全解
  4. Apache之三种工作模式和配置性能优化
  5. Android面试题总结加强版(二)
  6. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧
  7. 看得懂的设计模式 享元模式python3 最基本(简单)实现
  8. linux算法设计,嵌入式Linux平台下随机序列算法设计.doc
  9. mysql的indata文件_【数据分析】MySQL之不能导入本地文件“Loading local data is disable;”...
  10. 他解决了物理学千年争端,成就肩比牛顿、爱因斯坦,但却鲜有人知......