1995年MicroSystems公司
安装JDK后产生如下目录:
JDK常用工具:
设置环境变量:(有了集成开发环境,现已不再使用)
设置Java的Path,目的是让Java程序设计者在任何环境都可以运行SDK\bin目录下的工具文件,如:javac,java, javadoc等
设置classpath的目的是让Java虚拟机找到所需要的类库
体现Java的跨平台特性
Java语言特点
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
Java程序书写规范
类和对象
含义
classTV{ //电视机类 private int volume, channel; public void setCH(int n) { channel=n; } } TVt=new TV(); //创建对象封装
继承
多态
与静态绑定有关:
=new藏獒();
.嗅(主人气味欢快、愉悦的反应
.嗅(老虎气味充满警戒、敌意的反应
与动态绑定有关:
;
=new藏獒();哈利.护家();
=new哈巴狗();哈利.护家
classnameobjectname= new classname();
其作用是在内存里为对象分配内存空间。
对象的状态本质上等同于对象的值,任何程序的执行,其终极目标是处理数据。
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。
对象的内存管理
栈特征:后进先出
函数中定义的所有变量,无论是基本类型还是引用类型。
缺点:按照最大可能进行空间分配,导致空间利用低效。
特征:一种无结构的内存区域
程序给出申请或者释放内存单元的指令,可实现内存单元的按需分配或者释放
new是申请空间的指令
String s1=new String(“abc”); String s2=new String(“xyz”); S1=s2; //执行后字符串abc的对象成为内存垃圾,被泄露掉
对象清除
-清扫,分代式收集等
不会立即执行,Java是多线程,只有到特定时间才释放内存
访问数据成员及方法
其格式如下:
访问数据成员:对象. 属性名
参数传递
对象输出
类的名字@对象的
public class Product { int ID; String name; String categories; double productPrice; Product(int id, String nm, String categ,double price) { ID =id; name=nm; categories = categ; productPrice = price; } Product(){} public String toString(){ return ("Product "+ ID+","+ name + ","+categories+","+productPrice); } }public class Sx { public static void main(String args[]){ Product iphone = new Product(); Product ipad = new Product(10,"ipad2","computer",5000); Product macbook = new Product(11,"apple","computer",9999); System.out.println(ipad); System.out.println(macbook); System.out.println(iphone); } }对象创建clone
略
封装性实现机制
[修饰符]public、protected、private
、final
[访问控制修饰符] [继承修饰符] classclassname
{
[访问控制修饰符][全局修饰符] [继承修饰符]成员变量描述对象的属性
classname()//构造函数
访问控制修饰符] [全局修饰 符] [类型修饰符]返回类型
成员方法()//描述对象的行为操作
}
[访问控制修饰符][全局修饰符] [继承修饰符]成员变量
实例:
publicint
[访问控制修饰符
[全局修饰符
[继承修饰符
访问控制修饰符] [全局修饰 符] [类型修饰符]成员方法()
实例:
publicstatic final int getAge(){ return age; }[访问控制修饰符
[全局修饰符
[继承修饰符
类的修饰符:
[访问控制修饰符] [类型修饰符classclassname
}
实例:
public final class dog{ … }[访问控制修饰符
[继承修饰符

特性:
2、可以只通过类名以及”.”
3、静态方法能访问静态的成员变量,也能调用静态的方法,但是不能访问非静态成员变量,也不能调用非静态方法。但是非静态成员方法能访问非静态成员变量,也能调用非静态方法,同时也能访问静态的成员变量和调用静态的方法
类的访问控制只有public(公共类)及包(默认类)两种,没有私有。
修饰的成员
所修饰的成员方法不能被子类重写;
修饰的类不能被子类继承。
修饰的成员方法必须由子类重写
修饰的类不能被实例化
this指针
包
mportpath.to.package.foo.Foo
path.to.package.foo.*;
基础类库

class childClassextendsparentClass { //类体 }父类(baseclass)
子类(derived-class)
继承特点
重写
通过类的继承,子类可以修改,扩展从父类中继承的方法。
重写规则:
4. 当父类中方法为public时,子类中的重写方法只能为public
原因:java中规定重写方法不能比被重写的方法有着更严格的访问权限。
重载
重载:同一个类中有两个或者以上的方法共享一个方法名,但是参数不同。
“重写”与“重载”是两个完全不同的概念
在一个类中允许重写、重载同时存在。
super关键字
可以用super来引用父类中的方法、变量及构造方法
super必须是子类构造方法的第一条语句
public void speedup() { super.speedup(); //通过Super关键字调用父类的speedup() speed = speed +10; System.out.println("So fast!, my speed is:"+speed+"now"); } 继承关系下的构造方法
this关键字
指向自己的对象,可以访问自己的属性与方法
(1)this调用本类中的属性与方法,也就是类中的成员变量与方法;
(2)this调用本类中的其他构造方法,调用时要放在构造方法的首行;
(3)this返回类对象的引用;
引用成员变量与方法
返回类的引用
public class Product { int ID; String name; String categories; double productPrice; Product increment() { i++; return this; } }Java不支持多继承