Java-Home -->JDK装的位置
path-->可执行文件,放在Bin目录下
classpath-->类所在路径lib
递归:函数自身的调用,当不满足条件时跳出
类就是具有某种特征或行为的一类数的集合;对象是类的一个具体实例。
局部变量一定要初始化。
方法重载:类型不同,个数不同,顺序不同;只有返回值不同不能说明是方法重载。
在类里面,方法之间可以互相调用,在静态方法中,不能调用非静态方法。
构造方法重载以及调用:Person(String name,int age){this.name=name;this.age=age;}
Person(String name,int age,char sex){this(name,age);this.sex=sex;}
static 成员变量,公用变量。它在内存中只有一个地址。
静态方法直接用类名.方法名,在类加载时先执行。静态成员变量在类加载时初始化
继承中的构造方法:子类的构造过程中必须先调用基类的构造方法,使用this调用本类另外的构造方法。如果用super,必须写方法第一句。
子类对象只会调用子类的方法。
方法重写:具有相同的方法名称,参数列表和返回类型。重写方法不能使用比被重写更严格的访问修饰符。
final成员变量的值不能被改变,必须对成员变量初始化,方法不能被重写,类不能被继承。
多态存在的3个必要条件:继承,重写,父类引用指向子类对象。
例如:abstract class Shape{
abstract void draw();
}
class Triangle extends Shape{
void draw(){
System.out.println("triangle...............");
}
}
class Cuiboid extends Shape{
void draw(){
System.out.println("cuiboid............");
}
}
class Square extends Cuiboid{
void draw(){
System.out.println("square,,,,,,,,,,,,,");
}
}
class Paint{
void newPaint(Shape s){
s.draw();
}
}
public class Animal2 implements MyInterface,Itest1,Itest2{
public void sleep(){
System.out.println("I love to sleep!!");
}
public void eat(){
System.out.println("I love to eat!!");
}
public void fly(){
System.out.println("I CAN FLY");
}
public void run(){
System.out.println("run...........");
}
}
interface Itest extends Itest1,Itest2{
}
class Animal3 implements Itest{
public void fly(){
System.out.println("fly.............");
}
public void run(){
System.out.println("run...............");
}
}
public class Test2{
public static void main(String args[]){
//new Shape().draw();抽象类,无法对其实例化
Paint p=new Paint();
Square s=new Square();
Shape ss=new Triangle();
Shape c=new Cuiboid();
p.newPaint(ss);
p.newPaint(c);
p.newPaint(s);
new Animal2().sleep();
new Animal2().eat();
new Animal2().fly();
new Animal3().fly();
new Animal3().run();
}
}