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

菜鸟快速自学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. spring-struts-mybatis整合错误集锦

    尽管三大框架特别特别的好用,可是,当我第一次把这三个框架用maven整合到一起的时候.各种错误接踵而至,以下来做一下三大框架整合的总结: 首先是在导入三大框架的各种依赖包的时候,由于我用的是j2ee  ...

  2. 在Linux里环境变量设置的方法(export PATH)

    一般来说,配置交叉编译工具链的时候须要指定编译工具的路径,此时就须要环境变量设置.比如我的mips-linux-gcc编译器在"/opt/au1200_rm/build_tools/bin& ...

  3. Linux下Nginx安全证书ssl配置方法

    分享下我是如何一步步在Nginx上配置SSL的.首先,确保安装了OpenSSL库,并且安装Nginx时使用了–with-http_ssl_module参数. 初学者或者菜鸟建议使用LNMP进行一键安装 ...

  4. ie6中 object doesn’t support this property or method

    可能是由于方法或json中有注释,/**/或//删掉注释就可以了

  5. win7查看端口占用

    1.查看谁占用了我们的80端口,在windows命令行窗口下执行:   netstat -aon|findstr 80 发现80端口被进程号为2596的进程占用.2.查看占用80端口进程的应用程序是什 ...

  6. sql 注入 与解决

    package cn.itcast.jdbc; import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLExce ...

  7. nginx支持pathinfo模式

    很久不使用apache了,渐渐对apache感到陌生,因为朋友有个ZendFramework框架从apache移到nginx下,需要pathinfo模式支持.网上海搜于是开始搜索nginx+pathi ...

  8. SQL Server 的collate的含义

    什么叫排序规则呢?MS是这样描述的:"在 Microsoft SQL Server 2000 中,字符串的物理存储由排序规则控制.排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规 ...

  9. MyBatis缓存介绍

    一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 相同提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存.其存储作用域为 Se ...

  10. 1930: [Shoi2003]pacman 吃豆豆

    1930: [Shoi2003]pacman 吃豆豆 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1969  Solved: 461[Submit][ ...