JAVA基础学习1

 

JAVA开发环境

JDK下载

环境变量

Windows
计算机 > 属性 > 高级系统设置 > 环境变量

添加以下环境变量:

JAVA_HOME:C:\Program Files (x86)\Java\jdk1.8.0_91 (根据自己的实际路径配置)

CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (注意前面有个”.”)

Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

测试安装

执行命令 java -version

开发工具

Eclipse - 一个开放源代码的、基于 Java 的可扩展开发平台。
NetBeans - 开放源码的 Java 集成开发环境,适用于各种客户机和 Web 应用。
IntelliJ IDEA - 在代码自动提示、代码分析等方面的具有很好的功能。
MyEclipse - 由 Genuitec 公司开发的一款商业化软件,是应用比较广泛的 Java 应用程序集成开发环境。
EditPlus - 如果正确配置 Java 的编译器“Javac”以及解释器“Java”后,可直接使用 EditPlus 编译执行 Java 程序。

注释方式和C++基本相同

JAVA面向对象

面向对象

首先,所有 Java 类都继承自 Object 类(从这个名字,就可见一斑)。
几乎所有 Java 对象初始化时,都要使用 new 创建对象(基本数据类型、String、枚举特殊处理),对象存储在堆中。
与 C/C++ 这类语言不同,程序员只需要通过 new 创建一个对象,但不必负责销毁或结束一个对象。负责运行 Java 程序的 Java 虚拟机有一个垃圾回收器,它会监视 new 创建的对象,一旦发现对象不再被引用,则会释放对象的内存空间。

封装(Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

封装最主要的作用在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

class 父类 {}

class 子类 extends 父类 {}

不支持多继承

方法

修饰符 返回值类型 方法名(参数类型 参数名){    
    ...    
    方法体    
    ...    
    return 返回值;    
}    

变量

局部变量 - 类方法中的变量。
实例变量(也叫成员变量) - 类方法外的变量,不过没有 static 修饰。
类变量(也叫静态变量) - 类方法外的变量,用 static 修饰。

变量修饰符

访问级别修饰符 - 如果变量是实例变量或类变量,可以添加访问级别修饰符(public/protected/private)
静态修饰符 - 如果变量是类变量,需要添加 static 修饰
final - 如果变量使用 fianl 修饰符,就表示这是一个常量,不能被修改。

访问权限控制

Java 可运行程序是由一组 .class 文件打包并压缩成的一个 .jar 文件。Java 解释器负责这些文件的查找、装载和解释。Java 类库实际上是一组类文件(.java 文件)。

package

包(package)的原则:

包类似于文件夹,文件放在文件夹中,类和接口则放在包中。为了便于组织,文件夹一般是一个有层次的树形结构,包也类似。
包名以逗号 . 分隔,表示层次结构。
Java 中命名包名的一个惯例是使用域名作为前缀,因为域名是唯一的,一般按照域名的反序来定义包名,比如,域名是:apache.org,包名就以 org.apache 开头。
包名和文件目录结构必须完全匹配
Java 解释器运行过程如下: 找出环境变量 CLASSPATH,作为 .class 文件的根目录。 从根目录开始,获取包名称,并将逗号 . 替换为文件分隔符(反斜杠 /),通过这个路径名称去查找 Java 类。

通过 import 导入其它包的类到当前类

接口

接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到 API 定义和实现分离的目的。

接口,不能实例化;不能包含任何非常量成员,任何 field 都是隐含着 public static final 的意义;同时,没有非静态方法实现,也就是说要么是抽象方法,要么是静态方法。

Java 标准类库中,定义了非常多的接口

抽象类

抽象类是不能实例化的类,用 abstract 关键字修饰 class,其目的主要是代码重用。
除了不能实例化,形式上和一般的 Java 类并没有太大区别,可以有一个或者多个抽象方法,也可以没有抽象方法。
抽象类大多用于抽取相关 Java 类的共用方法实现或者是共同成员变量,然后通过继承的方式达到代码复用的目的。

抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

写两句?