【Java 学习笔记】《Head First Java》——基本概念

【Java 学习笔记】《Head First Java》——基本概念Java学习笔记——基本概念类与对象primitive主要数据类型与引用万物皆对象,真正的java程序只会让对象与对象交互,交互即相互调用方法类与对象类是对象的蓝图,它会告诉虚拟机如何创建某种类型的对象。根据某类创建出来的额对象都会有自己的实例变量。main()函数:在对象之外,用来(1)测试真正的类;(2)启动你的java应用程序classDogTestDrive{ publicstaticvoidmain(String[]args){ //Dog测试码 }}pr

大家好,又见面了,我是你们的朋友全栈君。

【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()判断两个对象是否意义上相等。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157143.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python画图[通俗易懂]

    Python画图[通俗易懂]帮别人实现rubberfriction的运算公式。公式不是我专业的内容,完全不懂,只是照着公式用python计算并画图。做出的图,与论文中的图进行对比,完全一致。之所以用python,是因为mat

    2022年7月5日
    26
  • 录屏做成gif的软件_下载录屏软件

    录屏做成gif的软件_下载录屏软件推荐一款神奇的gif录屏小软件,开源免费安装后打开即可录屏支持win,macos下载:https://www.cockos.com/licecap/github:https://github.com/justinfrankel/licecap

    2025年12月4日
    4
  • tinyint int区别_php intval函数

    tinyint int区别_php intval函数stock_numbertinyint(1)  如果stock_number此时的值是127,当库存+1的时候,就会超过int的最大范围(error:Datatruncation:Outofrangevalueforcolumn’stock_total’atrow1)类型      最小值      最大值      占用字节tinyi…

    2022年9月21日
    3
  • Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)[通俗易懂]

    Android直播开发之旅(10):AndroidUSBCamera,UVCCamera开发通用库(支持开启多路摄像头)[通俗易懂]AndroidUSBCamera基于[saki4510t/UVCCamera](https://github.com/saki4510t/UVCCamera)开发,该项目对USBCamera(UVC设备)的使用和视频数据采集进行了高度封装,能够帮助开发者通过几个简单的API实现USBCamera设备的检测、连接、预览和音视频数据采集,最重要的是手机无需root,只需支持otg功能即可驱………

    2022年8月13日
    9
  • 微商城分销系统:微商运营管理系统搭建介绍

    微商城分销系统:微商运营管理系统搭建介绍“互联网+”时代背景下,计算机信息处理技术的数据技术已经无法满足日益增长的数据存储需求。因此,工作人员要大力发开计算机信息处理技术的数据存储功能,促进存储技术发展,推动计算机信息处理技术在“互联网”时代中进步与发展。计算机信息处理技术的信息存储技术,是计算机在对信息数据进行加工后,将其保存在计算机系统的空间中,为使用者后期调取和查看做准备。微商城分销系统能够准确即时管理分销商,掌握分销商的销售情况,从而了解产品的销售情况,重要的是不仅实现了产品的销售与推广,还可以根据消费者的需求来改变产品的供求,了解市场

    2022年5月16日
    32
  • Unity3D 系统宏

    Unity3D 系统宏

    2021年12月31日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号