大家好,又见面了,我是你们的朋友全栈君。
【Java 学习笔记】《Head First Java》——基本概念
万物皆对象,真正的java程序只会让对象与对象交互,交互即相互调用方法
类与对象
类是对象的蓝图,它会告诉虚拟机如何创建某种类型的对象。根据某类创建出来的额对象都会有自己的实例变量。
main()函数:在对象之外,用来(1)测试真正的类;(2)启动你的java应用程序
class DogTestDrive{
public static void main(String[] args){
// Dog 测试码
}
}
primitive 主要数据类型与引用
java注重类型,变量有两种:
primitive主数据保存基本类型的值,包括整数、布尔数和浮点数等。
对象引用保存对象的引用。
- 变量就像杯子,是一种容器,承装某些事物。
- 主数据类型如同咖啡馆里的杯子,它们有不同的的大小,每种大小都有一个名称。
- long、int、short、byte代表了Java中4种基本整数类型。
- 注意:除非加上f,否则所有带有小数点的值都会被java当作double处理。
- 编译器不允许把大杯的内容放到小杯中,但反过来可以。
声明变量
包括类型和变量名称:int count;
控制对象
事实上没有对象变量这样的东西存在,只有引用(reference)到对象的变量。
- 对象引用变量保存的是存取对象的方法,我们可以把它想象成遥控器:
- 引用并不是对象的容器,类似指向对象的指针,或者说是地址。但是在java中我们不知道引用变量中实际装载的是什么,它只用来代表单一的对象。只有java虚拟机知道如何使用引用来取得该对象。
- 一个引用只能引用到被声明成的类型对象上。即dog遥控器不能变成cat遥控器,但dog遥控器可以引用不同的dog对象,只要是dog就行。
- 对于任意一个java虚拟机来说,所有的引用大小都一样,与对象实际大小无关。
数组也是对象
数组犹如杯架。
- 不管数组里面放的是不是primitive主数据类型,数组都是个对象。
- 一旦数组被声明出来,你就只能装入声明类型的元素。也就是说,你不能把cat放入dog数组中。
方法操作实例变量
状态影响行为,行为影响状态 。
- 对象有状态和行为两种属性,分别由实例变量和方法表示。
- 任一类的每个实例都带有相同的方法,但是方法可以根据实例变量的值表现不同的行为。
方法的参数
方法会运用形参(parameter),调用的一方会传入实参(argument)。 - java是通过值传递的,也就是说通过拷贝传递
- 如果像传入的参数是对象而不是primitive主数据会怎样?
Java中所传递的所有东西都是值,但此值是变量携带的值。引用对象的变量携带的是远程控制而不是对象本身,所以这实际上传入的是远程控制的拷贝。因此,在函数内可以修改引用控制的对象。
封装
数据隐藏,使用公有(public)和私有(private)两个存取修饰符。封装的基本原则是:将实例变量标记为私有的,并提供公有的getter与setter来控制存取动作。
初始化问题
- 实例变量(声明在类内而不是方法中)
可以不初始化,它们会有默认值。 - 局部变量(声明在方法中)
没有默认值,必须被初始化,如果在初始化前使用的话,编译器会报错。
对象的相等
==
只用来比较两个变量的字节组合是否相等。所以,使用==
(1)来比对primitive主数据类型;(2)判别两个引用是否指向同一对象。- 使用
equals()
判断两个对象是否意义上相等。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157143.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...