JAVA 基础知识
转载至: http://www.runoob.com/java/java-variable-types.html
对菜鸟教程进行核心整理:
一, JAVA 理论概念
1, 基础概念
Java 作为一种面向对象语言主要特性概念如下
接口: 接口可理解为对象间相互通信的协议. 接口在继承中扮演着很重要的角色.(可多继承)接口只定义派生要用到的方法, 但是方法的具体实现完全取决于派生类.
1, 多态: 前提是继承, 不同类对同一消息作出响应. 解决应用程序重名问题, 参数化多态和包含多态.
2, 继承: 增加类的可重用性, 一个类可以由其他类派生. 如果你要创建一个类, 而且已经存在一个类具有你所需要的属性或方法, 那么你可以将新创建的类继承该类.
利用继承的方法, 可以重用已存在类的方法和属性, 而不用重写这些代码. 被继承的类称为超类(super class), 派生类称为子类(subclass).
3, 封装: 把过程和数据包围保护(private), 通过受保护接口访问其它对象
4, 抽象: 忽略主题无关, 更加注意主旨, 抛弃细节, 有过程抽象(函数), 数据抽象(数据类型)
5, 类: 类是一个模板, 它描述一类对象的行为和状态.
6, 对象: 对象是类的一个实例, 有状态和行为. 例如, 一条狗是一个对象, 它的状态有: 颜色, 名字, 品种; 行为有: 摇尾巴, 叫, 吃等.
7, 实例: 每个对象都有独特的实例变量, 对象的状态由这些实例变量的值决定
8, 方法: 方法就是行为, 一个类可以有很多方法. 逻辑运算, 数据修改以及所有动作都是在方法中完成的.
9, 重载: 同一类中有俩个以上相同的方法名, 但参数不同, 方法不同.
2,Java 变量
局部变量: 在方法, 构造方法或者语句块中定义的变量被称为局部变量. 变量声明和初始化都是在方法中, 方法结束后, 变量就会自动销毁.
成员变量: 成员变量是定义在类中, 方法体之外的变量. 这种变量在创建对象的时候实例化. 成员变量可以被类中方法, 构造方法和特定类的语句块访问.(主方法之外)
类变量: 类变量也声明在类中, 方法体之外, 但必须声明为 static 类型.
需要注意的地方:(JAVA 关键字也不能在类名或者方法使用.)
3, 命名规则:
1, 见名释义
2, 不跟关键字和保留字冲突
3, 驼峰原则, 类名和接口名首字母大写 (大驼峰规则) 常量名大写下划线分开 变量名, 方法名(小驼峰规则) 首字母小写, 第二个单词大写
大小写敏感: Java 是大小写敏感的, 这就意味着标识符 Hello 与 hello 是不同的.
类名: 对于所有的类来说, 类名的首字母应该大写. 如果类名由若干单词组成, 那么每个单词的首字母应该大写, 例如 MyFirstJavaClass .
方法名: 所有的方法名都应该以小写字母开头. 如果方法名含有若干单词, 则后面的每个单词首字母大写.
源文件名: 源文件名必须和类名相同. 当保存文件的时候, 你应该使用类名作为文件名保存(切记 Java 是大小写敏感的), 文件名的后缀为. java.(如果文件名和类名不相同则会导致编译错误).
主方法入口: 所有的 Java 程序由 public static void main(String []args)方法开始执行.
4,JAVA 两类修饰符:
访问控制修饰符 : default, public , protected, private
非访问控制修饰符 : final, abstract, static, synchronized
5,Java 数组
数组是储存在堆上的对象, 可以保存多个同类型变量. 在后面的章节中, 我们将会学到如何声明, 构造以及初始化一个数组.
6,Java 枚举
枚举限制变量只能是预先设定好的值. 使用枚举可以减少代码中的 bug.
注释:// 这是单行注释的示例 /* 这个也是单行注释的示例 */
/* 这是第一个 Java 程序
这是一个多行注释的示例 */
7, 构造方法和重载以及重写
重写是子方法覆盖父类方法, 要求方法名和参数相同;(前提是继承)
重载是同一类中有俩个以上相同的方法名, 但参数不同, 方法不同.
构造函数是重载的一种, 最大的作用是创建对象完成初始化. 每个类都有构造方法. 如果没有显式地为类定义构造方法, Java 编译器将会为该类提供一个默认构造方法. 在创建一个对象的时候, 至少要调用一个构造方法. 构造方法的名称必须与类同名, 一个类可以有多个构造方法.
8, 创建对象
声明: 声明一个对象, 包括对象名称和对象类型.
实例化: 使用关键字 new 来创建一个对象.
初始化: 使用 new 创建对象时, 会调用构造方法初始化对象.
- PuppymyPuppy=newPuppy("tommy");/* 实例化对象 */ObjectReference= newConstructor();
- /* 访问类中的变量 */ObjectReference.variableName; /* 访问类中的方法 */ObjectReference.methodName();
二, 基本数据类型
1, 内置数据类型
Java 语言提供了八种基本类型. 六种数字类型(四个整数型, 两个浮点型), 一种字符类型, 还有一种布尔型.
- ,byte
- ,short
- ,int
- ,long
- ,float
- ,double
- ,boolean
- ,char
相应的封装方法
- System.out.println("基本类型: byte 二进制位数:" + Byte.SIZE);
- System.out.println("包装类: java.lang.Byte");
- System.out.println("最小值: Byte.MIN_VALUE=" + Byte.MIN_VALUE);
- System.out.println("最大值: Byte.MAX_VALUE=" + Byte.MAX_VALUE);
2, 引用数据类型
在 Java 中, 引用类型的变量非常类似于 C/C++ 的指针. 引用类型指向一个对象, 指向对象的变量是引用变量. 这些变量在声明时被指定为一个特定的类型, 比如 Employee,Puppy 等. 变量一旦声明后, 类型就不能被改变了.
对象, 数组都是引用数据类型.
所有引用类型的默认值都是 null.
一个引用变量可以用来引用任何与之兼容的类型.
3,JAVA 常量
常量在程序运行时是不能被修改的.
在 Java 中使用 final 关键字来修饰常量, 声明方式和变量类似:
final double PI = 3.1415927;
三, 自动类型转换
整型, 实型(常量), 字符型数据可以混合运算. 运算中, 不同类型的数据先转化为同一类型, 然后进行运算.
byte,short,char-> int -> long-> float -> double
转换的规则:
1. 不能对 boolean 类型进行类型转换.
2. 不能把对象类型转换成不相关类的对象.
3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换.
4. 转换过程中可能导致溢出或损失精度
5. 浮点数到整数的转换是通过舍弃小数得到
强转可能丢失精度:
int 强转成 float,long 强转成 float,long 强转成 double 可能出现精度损失.
来源: https://www.cnblogs.com/Smileing/p/10034289.html