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

菜鸟快速自学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。

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

下课了........

  

  

  

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

最新文章

  1. SpringMVC注解开发初步
  2. Jquery生成树 ztree
  3. Memcache所有方法及参数详解
  4. 转(Response.WriteFile 无法下载大文件解决方法)
  5. Leetcode Move Zeros
  6. 二、oracle pctfree和pctused详解
  7. 你知道吗?Web的26项基本概念和技术
  8. mysql一个事务中有DDL语句的binlog情况
  9. http 错误编号大全(转)
  10. 关于angularJS与jquery在使用上的一些感悟
  11. 【原创】回溯线搜索 Backtracking line search
  12. Linux前传——今天的学习
  13. .net中用到的一些方法
  14. 出现Deprecated: Function ereg_replace() is deprecated in 的原因及解决方法
  15. Ng第三课:线性代数回顾(Linear Algebra Review)
  16. leetcode933
  17. jvm高级特性(4)(内存分配回收策略)
  18. Passing address of non-local object to __autoreleasing parameter for write-back
  19. Java实现多线程
  20. mysql索引语法及示例

热门文章

  1. vue1和vue2获取dom元素的方法 及 nextTick() 、$nextTick()
  2. 笔记本中LVDS屏与eDP屏的比较
  3. Codeforces 467D Fedor and Essay bfs
  4. string去空格
  5. JavaScript框架——jquery
  6. TOML简介 (转)
  7. 21-nginx单机1W并发优化
  8. 800元组装一台3D打印机全教程流程
  9. 《Programming WPF》翻译 第4章 5.主从复合(Master-Detail)绑定
  10. 一个中断服务子程序ISR