1.概述
1.1 对象Object:表示任意存在的事物,即对象是实体存在的事物。通常划分为两类:静态部分和动态部分。静态部分被称为“属性”,是客观存在不可被忽视的,动态部分指的是对象的行为,即对象执行的动作。(例如:对象:一个人,属性:人的性别,行为:行走)
-
1.2 类:类是封装对象的属性和载体(例如:类:鸟群,属性:翅膀,爪子,行为:觅食,飞行)类包括对象的属性和方法,类中的对象的属性是以成员变量的形势定义的,对象行为是以方法的形式定义的,类其实就是对象的设计图。
-
1.3 特点:
A. 封装性encapsulation(是核心思想。将对象的属性和行为封装起来,其载体就是类); 对外提供公有的getter/setter例子:Fruit
B. 继承性inheritance(是实现重复利用的重要手段,子类通过基础,复用父类属性和行为的同时又添加子类特有的属性和行为);
C. 多态性polymorphism(子类继承父类的同时,又具备了自己的特征,能够实现不同的效果)
2.类与对象
含义: 类是封装对象的属性和载体,Java中定义类时使用class关键字
-
2.1 成员变量:对象的属性
-
2.2 成员方法:
定义:权限修饰符:(控制方法的访问权限)是private、public、protected中的任意一个,也可不写;返回值类型:用来指定方法返回数据的类型,可任意类型,若方法不需要返回值,则使用void关键字
注意:若定义方法时未指定权限修饰符,方法默认访问权限为缺省(即只能在本类或同个包中进行访问);如果有返回值,一定要用return关键字返回相应类型的数组。
-
2.3 成员方法的参数:
调用方法可以给该方法传递一个或多个值(实参:传给方法的值;形参:在方法内部,接收实参)
值参数:表示实参和形参的直接按值传递
引用参数:参数的类型是数组或者其他引用类型,则方法中对参数的修改回反野到原有的数组或其他应用上去。
不定长参数:若有若干个相同类型参数,可用不定长(例:int add(int...x)) -
2.3 构造方法:是一个与类同名的方法。每当类实例化一个对象出来,类都会自动调用构造方法。
2.4 局部变量:在成员方法中定义一个变量,则该变量就是局部变量。局部变量在方法执行时被创建,在方法执行结束时被销毁。
-
注意:局部变量使用时要进行赋值操作或被初始化,否则会出现编译错误
-
2.5 this关键字:用来代表本类对象的引用,this被隐式地用于引用对象的成员变量和方法。如果方法中出现了与局部变量同名的参数,会导致方法无法使用成员变量。
-
2.6 类的主方法:主方法是类的入口点,它指定了程序从何开始,提供对程序流向的控制。Java编译器通过主方法来执行程序。
主方法特征:静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的;主方法没有返回值;主方法的形参为数组,其中args[0]--args[n]分别表示程序的第一个参数到第n+1个参数,可以使用args.length获取参数的个数
- 2.7 小结:A、把数据抽象成类:万事万物皆是对象,数据也一样。任何数据都有特性,将这些特性设置成类的属性。如,时间包含年、月、日、时、分、秒,通用信息包含电话号码和姓名。B、局部变量和全局变量:其实所有的变量都是局部变量,只是根据变量有效范围不同而产生不同的叫法,如非静态全局变量和静态变量,非静态全局变量的有效范围时整个类体,当类销毁后这些全局变量会同时销毁。静态变量的作用范围时整个程序的生命周期 ,只有当程序结束后,静态变量才会销毁。
3、static关键字
由static修饰的变量(静态变量)、常量(静态常量)和方法(静态方法),统称为类的静态成员。
-
3.1 静态变量:把共享的变量用static修饰(例如:一个泳池中,同时打开入水口和出水口,这两个动作会同时影响到水池中的水量,此时水池中的水量就可以认为是一个共享的变量)
同一个类的不同实例对象,可以共用一个静态变量
-
3.2 静态方法:在无法创建类的对象时,要调用类中的方法才能够完成业务逻辑,在
这种情况下就可以使用静态方法(无需实例化就可以调用)
-
3.3静态代码块:用static修饰代码区域可以称之为静态代码块
运行顺序:静态代码块由始至终只允许了一次;非静态代码块在每次创建对象的时候,会在构造方法之前运行,所以在读取成员变量name时,只能获取到String类型的默认值“null”;构造方法只有在使用new创建对象的时候才会运行;成员方法只有在使用对象调用的时候才会运行。
参考文章:点这里