状态影响行为,行为影响状态。

1 方法参数和返回类型

方法可使用一个或多个参数;

传给方法的参数必须符合声明时的数量、顺序和类型;

传入和传出方法的值类型可以隐含地放大或明确地缩小;

传给方法的参数值可以使直接指定的文字或数字或与所声明参数相同类型的变量;

方法必须声明返回类型,使用void类型代表方法不返回任何东西;

方法只能声明单一的返回值;若需要返回多个相同数据类型的值,把返回类型说明为该数据类型的数组,将值装进数组中;若有不同数据类型的值,需要用到ArrayList。

2 值传递

Java是通过值传递,即通过拷贝传递,因此方法无法改变调用方所传入的参数。

3 Getter和Setter

Getter返回实例变量的值,Setter取一个参数来设定实例变量的值。

String getBrand(){return brand;
}void setBrand(String abrand){brand=abrand;
}

4 封装

没有封装,则可通过圆点运算符对实例变量进行存取。

需要建立Setter方法设定所有实例变量,而不是直接存取;

Java中,使用共有和私有这两个存取修饰符;

封装的基本原则是将实例变量标记为私有,并提供公有的Getter和Setter方法控制存取动作。

5 实例变量与局部变量

5.1 实例变量

实例变量有默认值,整型的值为0,浮点型的值为0.0,布尔型的值为false,引用的值为null;。

5.2 局部变量

局部变量没有默认值。

5.3 区别

实例变量是声明在类内,局部变量声明在方法内;

局部变量在使用前必须初始化;

6 变量的比较

使用==比较两个primitive主数据类型,或判断两个引用是否引用同一个对象;

使用equals()判断两个对象是否在意义上相等。

Foo a = new Foo();
Foo b = new Foo();
Foo c = a;
if (a == b) { // false }
if (a ==c ) { // true }
if (b == c) { // false}

HeadFirstJava——4_对象的行为相关推荐

  1. html对象转成字符串,4.对象转化为字符串

    4_对象转化为字符串 14:56 思维导图.png 序列化,指将 JavaScript 值转化为 JSON 字符串的过程. JSON.stringify() 能够将 JavaScript 值转换成 J ...

  2. java_B站_面试题

    Java面向对象有哪些特征,如何应用 ​ 面向对象编程是利用类和对象编程的一种思想.万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的 ...

  3. 史上最详细的23中设计模式解析,一个不落,理论搭配简单案例,更好理解哦

    目录 一.软件设计模式的产生背景 二.软件设计模式的概念与意义 1. 软件设计模式的概念 2. 学习设计模式的意义 三.23 种设计模式的分类和功能 1. 根据目的来分 2. 根据作用范围来分 3. ...

  4. JavaScript学习笔记05【高级——DOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  5. document在方法外获取对象无法获取数据

    案例目的:当我点击添加按钮的时候,表格下方可以添加一行数据 遇到一个问题希望有大佬帮我看看,以下两个代码区别在于使用document获取对象的时候,第一个是在方法外获取对象,第二个是在方法内获取对象 ...

  6. python123自定义幂函数_《python语言程序设计》_第三章(数字函数、字符串和对象)...

    3.2_常见的Python函数 (1) abs()函数 求绝对值 (2) max(x1,x2,x3,....)求最大值 (3) min(x1,x2,x3,....)求最小值 (4) pow 返回a的b ...

  7. 在kotlin companion object中读取Bean,注入Bean对象

    在kotlin companion object中读取Bean,注入Bean对象 在使用kotlin时,或多或少地会使用到一些公共组件,如 http. mongo. redis相关的组件.   使用组 ...

  8. IDEA自动生成对象所有set方法

    idea中有一款插件能够生成对象所有的set方法,GenerateAllSetter :下载地址 步骤1:将下载好的压缩包放在自己记得的文件夹中,在idea中进行导入 步骤2:在本地选中刚才的压缩包, ...

  9. 基于Golang的对象序列化的程序包开发——myJsonMarshal

    基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...

  10. java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...

    展开全部 //没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程 / ...

最新文章

  1. C语言 学生宿舍管理系统
  2. java存储cookie_在java中如何用cookies保存数据?
  3. python爬虫系列:12306票务信息爬虫
  4. vb.net2019- 目录
  5. PHP用单例模式实现一个数据库类
  6. C++ map嵌套使用 链接
  7. javaweb笔记1
  8. UVA 116——Unidirectional TSP
  9. python删除列表一段元素_Python基础--list列表删除元素
  10. 【李宏毅机器学习】Gradient Descent_1 梯度下降(p5、p6、p7 )学习笔记
  11. matlab实现将彩色图像(R,G,B)色分量的直方图匹配,并计算其相关性
  12. Wireshark配置安装以及抓包教程详解(win10版)(包含TCP IP ICMP 三次握手 半扫描等相关知识 )
  13. android声纹识别技术,基于Android平台的声纹识别系统的研究与实现
  14. docker安装mysql(PXC)集群
  15. lisp 画sinx曲线_如何用CAD画正弦曲线????有lisp的最好。。。谢谢了
  16. r语言中c5.0参数解释,机器学习与R语言:C5.0
  17. 热水器进水阀与角阀连接处漏水
  18. 【交互式用户流程与演示设计】上海道宁与​Overflow让您能更自信的展示您的设计
  19. 科普】华为手机支付保护中心有什么用?
  20. 一个实用的一键开关机电路

热门文章

  1. 【学习笔记】cs231n-assignment1-two_layer_net
  2. 分享一些视频加密播放技术业内知识
  3. NOIP2017总结
  4. oracle11g数据库登录01017,连接oracle数据库报错ORA-01017、重置用户的密码
  5. 机器学习数学基础 - 导数和偏导数
  6. 机器学习常用十大算法
  7. windows如何安装pycharm2022版本?pycharm如何安装汉化语言包{www.423zy.com}
  8. Vmprotect 驱动加壳踩坑
  9. 如何防止CSRF攻击?
  10. 三菱FX3U,三轴搬运PLC程序,控制三个台达B2伺服,信捷触摸屏的程序,有电气CAD图纸