---恢复内容开始---

菜鸟快速自学java00之变量类型

一、诉苦

  自己成为了Java中的一只菜鸟,而且已经菜了好多天了,我为什么会这么菜?归根结底,还是觉得自己在累计知识的同时,没有做好笔记,导致学到后面时,前面的基础知识仿佛又忘记了,接着又拿起书从头看,进入这个forever loop(死循环),始终找不到一个合适的条件break,有好多次都想return算逑了,不过在前不久一次偶然的尝试下,我觉得自己也许可以做得更好!

  当然,读者可能好奇,那次尝试是什么?这里先买个关子,不讲,因为我还没有看它完全见效,终究它只是我的一次尝试。最后,再说明一下,我的写作风格,概括一下,那就是“接地气”;我的写作内容都是偏实际应用型的,也就是可以直接上手的,没有多少理论层面上的深度,仅适合菜鸟初学者,主要是适合我自己啦。大神大牛大佬,请远离我,可能会拉低你的档(dang :四声,重音)次。

  废话就这么多,进入主题:虚拟了两个人物,一个是CC(computuer teacher),一个是GG(good student)。

二、变量和面向对象三大特点简介

    叮铃铃,上课了.......

  GG来到教室,睡眼朦胧,打着哈欠,挠着屁股.......

  CC老师来到教室,拿着戒尺,穿着正装,漂亮惨了.......

  CC:同学你好,这辈子我就是你们的Java老师。

GG:一辈子.........

  CC:哈哈,没错,就是一辈子,因为老师也还不精通,我们一起学习吧。

  GG:要得嘛。(太不靠谱了,要不要转学.......)

  CC:第一节课我们来讲一下Java中的变量。

  GG:老师,是不是讲得太快了?我预习了,听说开发之前还得安装JDK什么的啊...(话还没落地)

  CC:给老子闭嘴。我讲课,从来都只讲接地气的东西,环境安装自己百度去......

  GG:好,您继续,惹不起,惹不起.......(通过百度一会儿就装好了JDK和Eclipse)

  CC:Java中的变量类型,总体来讲分为:

    ①、值类型  ②、引用类型

    那么什么是值类型?

    就是说基本的数据类型,例如:整数类型(byte short int long),从左到右数值范围越来越大,特别注意,在表达long类型时,必须在数字后面添加上L(或小写l,一般用大写且不能省略),123L,通常来讲没有特殊要求 一般使用int比较多;浮点类型(float,double),如12.3f(F/f不能省略),123.4D(D/d可以省略);

布尔bool类型只有两个值,true和false,它往往是逻辑运算的结果,后面马上会详细讲解;char字符类型,如 :char ch = 'p';用单引号扩起哟。上面讲的用得很多,如果还有肯定用的少,导致CC老师没记住。

那么什么是引用类型?

    引用应该和面向对象语言的概念有关系,具体点是和计算机的内存存储有关系,当然,一句话说得不准确,因为那本来就是很复杂的技术,老师暂时不讲,因为老师毕竟就只剩你这么一个学生了。我们首先得保证会用,尽量深入一点。Class这个关键字认识吗?

  GG:老师,你写错了。Java中的class是这样写的。

  CC:你是不是要装怪?难道不是和老师写的一样吗?

  GG:老师,Java中是严格区分大小写的,所以我们写的不一样,您在仔细瞧瞧......

  CC:嗯,不错不错,老师故意的啦,就是看你预习没(哈哈,真尴尬!)。

  GG:(撅起小嘴,略略略......).......

  CC:咱们继续讲class,这是面向对象编程引入的一个基本概念,老师简单讲讲。class----->就是类。比如说:人类,狗类,花类,鸟类........什么的。你看吧,你是你爸爸生的吧,你爸爸是你爷爷生的吧,这意味着什么?

  GG:你才是你爸爸生的,我是麻麻生的。(一脸懵逼加不屑)

  CC:老师想表达的是面向对象的三大特点之一:继承。你看你和你爸爸某些地方一样,那就是你(子类)继承自爸爸(父类)的,但是有很多地方又不一样。

  CC:你再看看你是由头、脸、屁股、脚等等构成的一个整体,这也是面向对象的三大特点之一:封装。(类是由方法、属性、字段封装成一个整体)

  GG:(竖起大拇指)老师牛皮......脸过了就是屁股了.....不过我懂了封装的概念。

  CC:老师为了节约时间,因为你是男生,脸到屁股之间没有什么值得描述的啊,所以没讲。

  GG:我有肚脐眼儿啊,老师........

  CC:不准取悦老师,这样老师笑起来会露牙齿的,那就不美了。三大特点还差最难的一个概念:多态。那多态是什么?比如说你去打球,可能是打乒乓球,还有可能打篮球等等(实际上是方法的多态,重载就是具体体现),当然多态远远不止这些。

   老师在这里顺便讲一讲重载的概念。所谓重载就是指方法名(函数名)一样,但是参数个数、类型、排列顺序不完全一样,比如说:

    void PlayBoll(Basketball i){ System.out.print("打篮球!");}//只是演示概念

    int PlayBoll( ){System.out.print("打乒乓!");return 1; }

     看见了吗?值得注意的是,它们的返回值可以不一样。顺便记一个公式:函数名+参数列表=方法签名。因为《thinking in Java》中提到过好多次方法签名。你说说看,面向对象三大特征是什么?

  GG:封装、继承、多态。我个人集它们三于一身。

  CC:引用类型,说白了就是人类,狗类,字符串类(String),数组(Array),字符串缓冲区(StringBuffer),尤其带括号的三个类相当重要,全部得吃透,尤其是他们的静态方法,下节课CC老师将详细剖析。

三、自动装箱与自动拆箱

  CC:这个概念得知道,很简单。老师刚才在上面不是讲了,有两大类型吗(基本数据类型和引用类型),由于在面向对象编程中,主要操作引用类型,因此,基本数据类型用起来颇有不便,所以就引入了包装类的概念,包装类可以将基本类型变成引用类型。

  注:图片来源于网络。

   装箱:就是装到箱子里面去的意思,就是把基本的类型装到包装类里面去。

    拆箱:装箱的逆过程。

    举例子:

    int a = 10;

    Integer b = a;//你看把基本对象a的值给了对象引用b。这就是装箱过程。

int c = b;//拆箱过程

四、编程规范与风格

  CC:Java中约定(但不是要求):类名与方法名-->各单词首字母均大写Person。常量名-->MY_WIFE全大写,单词间下划线隔开。变量名第一个单词首字母小写,其余单词首字母均大写beatComputerBoy。

叮铃铃.........

下课了........

  

  

  

---恢复内容结束---

菜鸟快速自学java00之变量类型的更多相关文章

  1. 自学Python1.7-python变量以及类型

    自学Python之路 自学Python1.7-python 变量以及类型 1 变量是什么 变量是容器 2 变量的作用 存储数据到内存 3 为什么要用变量 存储数据方便后面引用 4 变量定义的规范 变量 ...

  2. GPU编程自学6 —— 函数与变量类型限定符

    深度学习的兴起,使得多线程以及GPU编程逐渐成为算法工程师无法规避的问题.这里主要记录自己的GPU自学历程. 目录 <GPU编程自学1 -- 引言> <GPU编程自学2 -- CUD ...

  3. NO.2:自学python之路------变量类型、列表、字典

    引言 本周初步认识了库,并学习了Python中各种类型的变量和常用操作.并完成了较为完善的用户与商家购物界面设计. 正文 模块: Python有标准库和第三方库.第三方库需要安装才能使用.大量的库可以 ...

  4. Python学习--03变量类型

    变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...

  5. 记住 Python 变量类型的三种方式

    title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...

  6. 一、JAVA变量类型:①类变量与实例变量的异同点

    在JAVA中,变量使用前必须声明,格式如下: int a; //单个变量声明 int b, c, d; //多个变量一起声明 int e = 1, f = 2, g = 3; //声明时同时赋值(初始 ...

  7. C语言函数返回值和变量类型

    前言 最近在刷题,在写矩阵的快速幂的题时,对于返回值是数组的程序,写的十分冗杂.借此机会,重新梳理下C语言中函数的返回值与变量类型的关系. 按照变量的寿命,可以分为三种类型 1.静态变量 寿命从程序开 ...

  8. JS基础-变量类型和类型转换

    JS 变量类型 JS中有 6 种原始值,分别是: boolean number string undefined symbol null 引用类型: 对象 数组 函数 JS中使用typeof能得到哪些 ...

  9. [啃书] 第1篇 - 输入输出/变量类型/math函数

    啃书部分已单独做成Gitbook了,后续不再更新.详情访问个人网站ccoding.cn或ccbyte.github.io 说在前面 一直想刷算法找不到很适合的书,后来发现考PAT很多推荐<算法笔 ...

随机推荐

  1. UNP学习笔记(第十六章 非阻塞I/O)

    套接字的默认状态时阻塞的 可能阻塞的套接字调用可分为以下4类: 1.输入操作,包括read.readv.recv.recvfrom和recvmsg. 2.输入操作,包括write.writev.sen ...

  2. nfs部署和优化 -2

    客户端: cat /etc/passwd 显示用户 weifeng 500   服务端: vim /etc/exports /mnt 192.168.1.105(rw,sync,all_squash, ...

  3. Nook 2 Root

        最后我还是忍不住root了它,用了差一点够一个月 1.备份2.root 3.装软件=====================================================1. ...

  4. curl库pycurl实例及参数详解

    pycurl是功能强大的python的url库,是用c语言写的,速度很快,比urllib和httplib都快. 今天我们来看一下pycurl的用法及参数详解 常用方法: pycurl.Curl() # ...

  5. 六种基本DCDC变换器拓扑结构

    1.SEPIC电路 2.

  6. python sax解析xml

    #books.xml<catalog> <book isbn="0-596-00128-2"> <title>Python & XML& ...

  7. java线程用法

    package com; public class Demo { public static void main(String[] args) { // TODO Auto-generated met ...

  8. 49 个jquery代码经典片段

    49 个jquery代码经典片段,这些代码能够给你的javascript项目提供帮助.其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一 些则是真正有用的函数或方法,他们能够帮助你又快又 ...

  9. 搭建私有Nuget仓库

    使用Nexus搭建私有Nuget仓库 https://www.cnblogs.com/Erik_Xu/p/9211471.html 前言 Nuget是ASP .NET Gallery的一员,是免费.开 ...

  10. erlang中判断进程是否存活

    一个参数的方法是已知Pid判断进程是否存活.两个参数的方法是已知节点和Pid或进程名判断进程是否存活. is_process_alive(Pid) when is_pid(Pid)->rpc:c ...