Java基础-概念与基础语法
概念
类
类就是具备某些相同特征的实体的集合,它是一种抽象的数据类型,是对所有具有相同特征的实体的抽象。类是一个模板,它描述一类对象的行为和属性。
对象
对象是类的一个实例,对象有行为和属性。
实例
new关键字 加上 构造方法 创建出来的对象就是实例。已经分配了内存的对象就是实例,使用new关键字造出来的对象,被分配在内存的堆区(heap)。
方法
这一类实体所具有的行为
例:
人(Person)是一个类
一个人就是这个类的一个对象
属性有:名字、年龄等
行为有:吃,走等;就是他的方法
使用new 关键字创建一个具体的某一个人 Person 张三 = new Person(),张三就是一个实例
变量
变量是指内存中的一个存储区域,该区域要有自己的名称(变量名)、类型(数据类型),该区域的数据可以在同一数据类型的范围内不断变化值;
局部变量
类的方法中的变量。
类变量(静态变量)
独立于方法之外的变量,用 static 修饰。
成员变量(非静态变量)
独立于方法之外的变量,不过没有 static 修饰。
多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作
继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
封装
将对象的属性和实现细节隐藏起来,只提供公共的访问方式。
重载
就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
编程语言中的重载
多态,覆盖,重写
面向对象
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
面向过程
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象三大基本特征
多态、继承、封装
面向对象五大基本原则
单一职责原则SRP
是指一个类的功能要单一,不能包罗万象。
开放封闭原则OCP
一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。
里式替换原则LSP
子类应当可以替换父类并出现在父类能够出现的任何地方。
依赖倒置原则DIP
具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能 造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。
接口分离原则ISP
模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来
基本语法
命名规范
大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的 Java 程序由 public static void main(String []args) 方法开始执行。
项目名:项目名全部小写
包名:包名所有字母小写。
类名:类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。
常量名:常量名全部大写
变量名和方法名:变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。
注释规范
类注释
/**
* Copyright (C), 2006-2010, ChengDu Lovo info. Co., Ltd.
* FileName: Test.java
* 类的详细说明
*
* @author 类创建者姓名
* @Date 创建日期
* @version 1.00
*/
属性注释
/** 提示信息 */
private String strMsg = null;
方法注释
/**
* 类方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @return 返回结果的说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/
构造方法注释
/**
* 构造方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/
方法内部注释
//背景颜色
Color bgColor = Color.RED
Java 标识符
1、所有的标识符都应该以字母(A-Z 或者 a-z),美元符( $ )、或者下划线( _ )开始
2、首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
3、关键字不能用作标识符
4、标识符是大小写敏感的
5、要符合语义信息。
Java修饰符
主要有两类修饰符:
访问控制修饰符 : default, public , protected, private
非访问控制修饰符 : final, abstract, static, synchronized
Java 枚举
枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug。
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
class FreshJuice {
enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
FreshJuiceSize size;
}
public class FreshJuiceTest {
public static void main(String []args){
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM ;
}
}
Java 关键字
Java 关键字,保留字不能用于常量、变量、和任何标识符的名称。
关键字 | 说明 |
---|---|
private | 私有的 |
protected | 受保护的 |
public | 公共的 |
abstract | 声明抽象 |
class | 类 |
extends | 扩充,继承 |
final | 最终值,不可改变的 |
implements | 实现(接口) |
interface | 接口 |
native | 本地,原生方法(非 Java 实现) |
new | 新,创建 |
static | 静态 |
strictfp | 严格,精准 |
synchronized | 线程,同步 |
transient | 短暂 |
volatile | 易失 |
break | 跳出循环 |
case | 定义一个值以供 switch 选择 |
continue | 继续 |
default | 默认 |
do | 运行 |
else | 否则 |
for | 循环 |
if | 如果 |
instanceof | 实例 |
return | 返回 |
switch | 根据值选择执行 |
while | 循环 |
assert | 断言表达式是否为真 |
catch | 捕捉异常 |
finally | 有没有异常都执行 |
throw | 抛出一个异常对象 |
throws | 声明一个异常可能被抛出 |
try | 捕获异常 |
import | 引入 |
package | 包 |
boolean | 布尔型 |
byte | 字节型 |
char | 字符型 |
double | 双精度浮点 |
float | 单精度浮点 |
int | 整型 |
long | 长整型 |
short | 短整型 |
super | 父类,超类 |
this | 本类 |
void | 无返回值 |
保留关键字 | goto 是关键字,但不能使用 |
const | 是关键字,但不能使用 |
null | 空 |