菜鸟快速自学java00之变量类型
---恢复内容开始---
菜鸟快速自学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之变量类型的更多相关文章
- 自学Python1.7-python变量以及类型
自学Python之路 自学Python1.7-python 变量以及类型 1 变量是什么 变量是容器 2 变量的作用 存储数据到内存 3 为什么要用变量 存储数据方便后面引用 4 变量定义的规范 变量 ...
- GPU编程自学6 —— 函数与变量类型限定符
深度学习的兴起,使得多线程以及GPU编程逐渐成为算法工程师无法规避的问题.这里主要记录自己的GPU自学历程. 目录 <GPU编程自学1 -- 引言> <GPU编程自学2 -- CUD ...
- NO.2:自学python之路------变量类型、列表、字典
引言 本周初步认识了库,并学习了Python中各种类型的变量和常用操作.并完成了较为完善的用户与商家购物界面设计. 正文 模块: Python有标准库和第三方库.第三方库需要安装才能使用.大量的库可以 ...
- Python学习--03变量类型
变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...
- 记住 Python 变量类型的三种方式
title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...
- 一、JAVA变量类型:①类变量与实例变量的异同点
在JAVA中,变量使用前必须声明,格式如下: int a; //单个变量声明 int b, c, d; //多个变量一起声明 int e = 1, f = 2, g = 3; //声明时同时赋值(初始 ...
- C语言函数返回值和变量类型
前言 最近在刷题,在写矩阵的快速幂的题时,对于返回值是数组的程序,写的十分冗杂.借此机会,重新梳理下C语言中函数的返回值与变量类型的关系. 按照变量的寿命,可以分为三种类型 1.静态变量 寿命从程序开 ...
- JS基础-变量类型和类型转换
JS 变量类型 JS中有 6 种原始值,分别是: boolean number string undefined symbol null 引用类型: 对象 数组 函数 JS中使用typeof能得到哪些 ...
- [啃书] 第1篇 - 输入输出/变量类型/math函数
啃书部分已单独做成Gitbook了,后续不再更新.详情访问个人网站ccoding.cn或ccbyte.github.io 说在前面 一直想刷算法找不到很适合的书,后来发现考PAT很多推荐<算法笔 ...
随机推荐
- 调用android系统相机拍照并保存
[java] view plaincopyprint? <span style="font-size:18px;">package com.demo; import j ...
- Battery Charging Specification 1.2 中文详解
转: http://blog.csdn.net/liglei/article/details/228 1. Introduction 1.1 Scope 规范定义了设备通过USB端口充电的 ...
- dede内容页调用点击数
<script src="{dede:field name='phpurl'/}/count.php?view=yes&aid={dede:field name='id'/} ...
- SpringBoot启动流程分析(二):SpringApplication的run方法
SpringBoot系列文章简介 SpringBoot源码阅读辅助篇: Spring IoC容器与应用上下文的设计与实现 SpringBoot启动流程源码分析: SpringBoot启动流程分析(一) ...
- 深入浅出Attribute (一)
正文: 什么是Attribute?Attribute是干什么使的?Attribute与Property到底有什么区别?…… 长久以来,这些问题一直困扰着并不怎么广大的C#初学者.原因大概有两个,一是A ...
- 根据URL发起HTTP请求,我的HTTPHelper。
完整的demo using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- AI生万物,新世界的大门已敞开
四月是万物复苏的时节,一年一度的GMIC全球移动互联网大会也在这个时间如期而至,在4月26日-28日的会议期间,有超过三百位行业专家进行了精彩的演讲,更有数万名现场观众感受到思维碰撞迸发出的火花. 作 ...
- 如何编译文件(gcc + nasm)
[0]README 编译文件(nasm + gcc),特别是编译目标文件的依赖文件:本文旨在回顾 gcc 和 nams 编译器的编译命令,以及如果有多个依赖文件该如何编译: [1]编译文件 1.1)编 ...
- 【Android】图片(文件)上传的请求分析结构
怎么在android中上传文件,即怎么用Java向服务器上传文件.上传图片,这是个老问题了,在网上能搜到现成的代码,很多朋友用起来也比较熟了,但是为什么这么写,可能很多朋友并不清楚,这篇文章就来分析一 ...
- CountDownTimer
package com.daoge.widget; import java.text.DecimalFormat; import android.os.CountDownTimer; import a ...