数据类型
基本数据类型: byte short int long float double boolean char
类数据类型:String, 以及所有类……
类(Class)与 对象 (Object)
类
具有相同属性,特征,方式,功能的一类事物的统称。
包括属性和方法。
每一个Class都是一个高级的变量类型,Class可以用来定义较为复杂的变量类型。
比如:
Public class classA {
int a;
char b;
}
这就用系统自带的基础变量类型创造了一个复合型的变量类型。
对象
对象是类的具体表现。
比如: 犬类下,有具体的某一只狗,即为对象。
对象的特征定义为类的属性,对象的行为定义为类的方法(函数)。
创建新对象(实例化对象),关键字:new
类名 对象变量名= new 类名();
Student stu = new Student();
使用对象名来调用对象的方法:
对象名.方法名([参数值……]);
stu.setName('张三');
主函数的格式
public static void main (String arg[]){ }
其中 public static 为变量修饰符, void 表示返回值为空,无返回值。
成员变量修饰符 public,private,protected, friendly, final, static……
public:公共访问修饰符,指定该变量为公共的,可以被其他任何对象访问。
private:私有访问修饰符,指定该变量为只允许自己的类的方法访问,其他任何类(包括子类)中的方法都不可以访问。
protected:保护访问修饰符,指定该变量可以被自己的类和子类访问。在子类中可以覆盖此变量。
friendly:在同一个包中的类可以访问,在其他包中的类不能访问。
final:最终修饰符,指定此变量的值不能变。
static: 静态修饰符,指定变量被所有对象共享,即所有实例都可以使用该变量,变量属于这个类。
继承
指在多种类型之间,存在继承关系。子类和父类具有同名的方法和属性,但具体内容不同。
如果子类中不写任何方法,运行时调用的就是从父类中继承来的方法。
如果子类中重写父类中的方法,则运行时调用的是子类的方法,重写时方法格式与父类一致。Super 指代父类。
关键字:extends
public class 子类名 extends 父类名 {}
继承的好处是:多态。同一类型的对象,具有不同的行为,对于复杂程序的代码量会因此减少,增加程序的灵活性。
Q: 子类以及子类对象能调用父类的哪些属性和方法?
访问权限修饰符 public 公共的 默认的
同包下:
1、不能调用私有的属性和方法
不同包:
1、在子类{ } 域 中 可以调用 protected和public
2、在非子类中,只能调用public
自动转型
子类对象可以自动转型成父类类型,转型之后不能调用子类特有的属性和方法。
父类 对象变量名= new 子类();
构造方法
每个类都有一个默认的空构造方法,如果定义了就会占用这个空的构造方法。
创建对象时自动调用,并且只在创建对象时执行一次。
没有返回值结构,方法名为类名。
构造方法可以重载。
格式:
public 类名(参数类型 参数名,……){}
this: 表示当前调用方法的对象。
比如说新建立了一个对象,作为当前对象,这个新对象传入了一个名为name的String参数,(this.name)表示当前对象在类中的属性String name, this.name = name 表示把类中的String name赋值为这个新对象的参数name。
Public class Person{
String name;
Person(String name){
this.name = name;
}
}
重载
在一个类内部,有多个同名方法,但参数类型不同。调用时,根据传入的参数,调用对应的方法。
Q: 重写与重载的区别?
重写一定是子类继承父类时,重载只发生在一个类的内部。