现实世界中的所有事物在程序中的体现是对象,而为了便于程序创建一系列具有相同特征和行为的对象,程序中引入了
类。类是具有相同属性和行为的对象的抽象,定义类的关键字是class ,访问控制权限是public。
定义类格式
public class 类名{
private 数据类型 属性名;
public 类名([参数列表]){
//方法体
}
public 返回值类型 方法名([参数列表]){
//方法体
}
}
Java的方法分为两类:根据返回值划分为有返回值的方法和无返回值的方法,根据参数划分为有参数的方法和无参数的方法。
这两类不是独立的,在程序中的方法一定可以按着分类的依据有两种叫法。有时候对象所做的行为一样的,但他们实现行为的方法是
不一样的,这时就要用到方法重载。方法重载必须在同一个类中 ,方法名字相同,参数的个数和类型不同。方法调用时会根据你调用
方法时,所传递的参数个数和参数类型来决定调用具体的方法。方法参数传有两种,第一种是基本数据类型的传递,第二种是对象的
传递。基本数据类型(包括了String类型)的传递是值传递,值传递是将变量A中的值,拷贝一份存入到变量B中,两个不同的变量
分别存储相同的值,对变量B的值做修改是不会影响到变量A。对象的传递是引用传递,引用传递是将对象名A中存储的地址,拷贝一
份存入到对象名B中,这样两个对象名中存储的地址相同,那么在调用方法或者属性的时候都访问的是同一对象,即B中的属性和方法
发生改变时,A中的属性和方法也会发生改变。
用类创建对象并初始化时,系统会调用构造函数。构造函数与普通方法的不同,构造函数的函数名必须和类名相同且不能有
返回值类型,而普通函数的函数名是自己定义的,且必须要有返回值类型;构造函数是用来实例化对象(创建对象)和初始化属性,
普通方法是执行某一个功能的方法;系统会默认提供一个构造函数,普通方法必须自己写 ;每创建一个对象,只会使用一个构造函数,
并只执行一次,普通方法可以多次调用。
创建对象的格式为:
类名 对象名 = new 构造函数名([参数列表]);
调用对象中方法的格式:
对象名.方法名([参数列表]);
this关键字有两个作用,一个是指当前活动的对象,即“我” ;另一个是当参数名和属性名相同时,用来区分它们的,用this
代表属性,没的是参数。
当我们要在已有的类的基础上重新定义一个类,该类可以实现已有类的方法,也可以实现该类特有的方法时,就要用到继承。继承
可以增加程序的可重用性和扩展性。实现继承必须使用extends关键字。
继承的格式
public class 子类名 extends 父类名{
}
当子类和父类不在同一包下,子类可以继承父类公有的属性和公有的方法;当子类和父类在同一包下,子类可以继承父类公有的、受
保护的以及默认的属性和方法。有时候,子类中的对象虽然可以完成父类中的相同的行为,但实现不同。这时候就要在子类中重写父类中的方法。
方法的重写必须存在继承的关系,子类中定义的方法必须在父类中存在,并且子类定义的方法格式必须完全和父类一样,但是子类定义方法的访问
修饰符可以比父类的访问修饰符范围大。子类也可以重载父类中的方法。
当两个类存在继承关系时,对象的创建可以使用自动转型。这是因为父类包含了子类。实现自动转型后,虽然对象名是父类类型的,但是
具体的对象却是通过子类的构造函数创建的,那么对象是子类的。所以在调用方法时,会优先执行子类的方法,如果子类中没有该方法,则执行父类的
方法。
自动转型的格式:、
父类名 对象名 = new 子类构造函数([参数列表]);
多态是由于继承、方法重载、方法重写、自动转型导致程序在编译的时候不能确定最终要执行的方法,只有在运行的时候才能确定最终要执行
的方法所产生的。
接口是用来定义规则(方法),它可以便于修改程序,扩展。接口只有公有的属性和方法,且方法是没有具体的实现,而且常量一般是定常量。
接口中是没有构造函数,所以接口不可以创建对象。定义接口的关键字是interface,实现接口的关键字是implements。接口是一种特殊的类,与普通类
不同。接口定义和实现的关键字和类中的不同;类可以实现多个接口,但是类只能继承一个类;接口中所有的方法是抽象的定义没有实现,类所有的方法
必须要有实现;接口中没有构造函数,也就不能创建对象,类有构造函数,也就能创建对象。
定义接口的格式
public interface 接口名{
定义常量的格式:
public static final 数据类型 常量名(常量名最好全部大写) = 值;
定义方法的格式:
public 返回值类型 方法名([参数列表]);
返回值类型 方法名([参数列表]);
}
实现接口的格式
public class 类名 implements 接口名{
//重写接口中定义的所有方法。
}
接口可以继承接口。
public interface 子接口名 extends 父接口名{
}
抽象类是介于接口和类之间的一种类,所以抽象类中有抽象的具体的方法,也有变量和常量。由于抽象类中有抽象的方法,所以抽象类是不可以创建对象的。
定义抽象类的关键字是abstract class。
定义抽象类的格式
public abstract class 类名 extends 父类 implements 父接口,...{
定义抽象方法
public abstract 返回值类型 方法名([参数列表]);
}
类。类是具有相同属性和行为的对象的抽象,定义类的关键字是class ,访问控制权限是public。
定义类格式
public class 类名{
private 数据类型 属性名;
public 类名([参数列表]){
//方法体
}
public 返回值类型 方法名([参数列表]){
//方法体
}
}
Java的方法分为两类:根据返回值划分为有返回值的方法和无返回值的方法,根据参数划分为有参数的方法和无参数的方法。
这两类不是独立的,在程序中的方法一定可以按着分类的依据有两种叫法。有时候对象所做的行为一样的,但他们实现行为的方法是
不一样的,这时就要用到方法重载。方法重载必须在同一个类中 ,方法名字相同,参数的个数和类型不同。方法调用时会根据你调用
方法时,所传递的参数个数和参数类型来决定调用具体的方法。方法参数传有两种,第一种是基本数据类型的传递,第二种是对象的
传递。基本数据类型(包括了String类型)的传递是值传递,值传递是将变量A中的值,拷贝一份存入到变量B中,两个不同的变量
分别存储相同的值,对变量B的值做修改是不会影响到变量A。对象的传递是引用传递,引用传递是将对象名A中存储的地址,拷贝一
份存入到对象名B中,这样两个对象名中存储的地址相同,那么在调用方法或者属性的时候都访问的是同一对象,即B中的属性和方法
发生改变时,A中的属性和方法也会发生改变。
用类创建对象并初始化时,系统会调用构造函数。构造函数与普通方法的不同,构造函数的函数名必须和类名相同且不能有
返回值类型,而普通函数的函数名是自己定义的,且必须要有返回值类型;构造函数是用来实例化对象(创建对象)和初始化属性,
普通方法是执行某一个功能的方法;系统会默认提供一个构造函数,普通方法必须自己写 ;每创建一个对象,只会使用一个构造函数,
并只执行一次,普通方法可以多次调用。
创建对象的格式为:
类名 对象名 = new 构造函数名([参数列表]);
调用对象中方法的格式:
对象名.方法名([参数列表]);
this关键字有两个作用,一个是指当前活动的对象,即“我” ;另一个是当参数名和属性名相同时,用来区分它们的,用this
代表属性,没的是参数。
当我们要在已有的类的基础上重新定义一个类,该类可以实现已有类的方法,也可以实现该类特有的方法时,就要用到继承。继承
可以增加程序的可重用性和扩展性。实现继承必须使用extends关键字。
继承的格式
public class 子类名 extends 父类名{
}
当子类和父类不在同一包下,子类可以继承父类公有的属性和公有的方法;当子类和父类在同一包下,子类可以继承父类公有的、受
保护的以及默认的属性和方法。有时候,子类中的对象虽然可以完成父类中的相同的行为,但实现不同。这时候就要在子类中重写父类中的方法。
方法的重写必须存在继承的关系,子类中定义的方法必须在父类中存在,并且子类定义的方法格式必须完全和父类一样,但是子类定义方法的访问
修饰符可以比父类的访问修饰符范围大。子类也可以重载父类中的方法。
当两个类存在继承关系时,对象的创建可以使用自动转型。这是因为父类包含了子类。实现自动转型后,虽然对象名是父类类型的,但是
具体的对象却是通过子类的构造函数创建的,那么对象是子类的。所以在调用方法时,会优先执行子类的方法,如果子类中没有该方法,则执行父类的
方法。
自动转型的格式:、
父类名 对象名 = new 子类构造函数([参数列表]);
多态是由于继承、方法重载、方法重写、自动转型导致程序在编译的时候不能确定最终要执行的方法,只有在运行的时候才能确定最终要执行
的方法所产生的。
接口是用来定义规则(方法),它可以便于修改程序,扩展。接口只有公有的属性和方法,且方法是没有具体的实现,而且常量一般是定常量。
接口中是没有构造函数,所以接口不可以创建对象。定义接口的关键字是interface,实现接口的关键字是implements。接口是一种特殊的类,与普通类
不同。接口定义和实现的关键字和类中的不同;类可以实现多个接口,但是类只能继承一个类;接口中所有的方法是抽象的定义没有实现,类所有的方法
必须要有实现;接口中没有构造函数,也就不能创建对象,类有构造函数,也就能创建对象。
定义接口的格式
public interface 接口名{
定义常量的格式:
public static final 数据类型 常量名(常量名最好全部大写) = 值;
定义方法的格式:
public 返回值类型 方法名([参数列表]);
返回值类型 方法名([参数列表]);
}
实现接口的格式
public class 类名 implements 接口名{
//重写接口中定义的所有方法。
}
接口可以继承接口。
public interface 子接口名 extends 父接口名{
}
抽象类是介于接口和类之间的一种类,所以抽象类中有抽象的具体的方法,也有变量和常量。由于抽象类中有抽象的方法,所以抽象类是不可以创建对象的。
定义抽象类的关键字是abstract class。
定义抽象类的格式
public abstract class 类名 extends 父类 implements 父接口,...{
定义抽象方法
public abstract 返回值类型 方法名([参数列表]);
}