六、方法
1、int fun(int a, int b) {return a*b;} //返回两参数之积
2、Float fun (int a, flaot b){return (flaot) a*b;} //返回两参数之积
3、Int fun(int a, int b){return a>b?a:b;} //返回a和b中的最大值
4、方法可以没有返回值(void),但是不能有多个返回值。
5、若一个方法如果没有返回值,则方法头中的返回值类型为void。
6、形式参数:在定义函数过程的时候命名的参数。
实在参数:在执行调用函数或过程的时候,传递给函数或过程的参数。
形参和实参的关系:两者是在调用的时候进行结合的,通常实参会将取值传递给形参,形参取值后进行函数过程运算,然后可能将某些值经过参数或函数符号返回给调用者。
7、一个方法或一个符合语句内定义的变量不可以在方法外或者符合语句外使用,这种变量称之为局部变量。
局部变量:此变量的作用范围仅限于此模块。它的上下级模块此变量都不可用。
私有变量:变量的作用范围仅限于此模块及它的下级子程序,它的上级程序不可用。变量未经语句说明,默认都是私有变量。
8、采用模块化的程序设计原则,是程序结构更为清晰、设计容易、有助于软件可靠性的提高。
七、方法重载
1、同一个类中多个方法具有相同的方法名,但是参数列表是不相同的,称之为方法的重载。
2、区分类中重载的同名方法,要求采用不同的形式的参数列表。
3、重载的方法不能通过他们的返回值类型的不同来区分。
4、编译程序根据参数列表的不同来区分重载方法的调用。
八、数组
1、定义数组,需要完成三个步骤,即:(1)、声明数组 (2)、创建数组空间 (3)、初始化 例: int a[] = new int[4]
2、在java语言中,所有的数组都有一个length属性,这个属性存储了该数组元素的个数(数组长度)。
3、数组元素的下标是从0开始的,“0”表示第一个数组元素。
4、数组一定是占用连续的内存空间的。
4、float类型变量不能向整型变量直接转换。
九、类
1、(1)、类是同种对象的集合和抽象
(2)、类是抽象的数据类型
(3)、类是复合数据类型
2、定义类头时,不能用到的关键字是private,可以使用class、protected、extends、public。
3、用于定义子类时声明父类名的关键字是extends。
4、Implements是用于类继承接口的。
5、一个类一般是由两部分组成,即:(1)、变量定义 (2)、方法定义
6、面向对象的软件开发方法:用类把数据和基于数据的操作封装在一起。
7、类头定义中包含了四个部分:
(1)、访问控制修饰符 (2)、类名说明
(3)、父类名说明 (4)、接口名说明
其中类名说明是必不可少的。
例如:public class A {......}
Public class A extends B {......}
Class A extends B implements C {......}
8、Java保存的文件名必须与类名一致;
9、如果文件中只有一个类,文件名必须与类名一致;
10、一个Java文件中只能有一个public类;
11、如果文件中不止一个类,文件名必须与public类名一致;
12、如果文件中不止一个类,而且没有public类,文件名可与任一类名一致
13、定义类就是定义一种抽象类型的数据类型,它是所有具有一定共性的对象的抽象描述。
14、在一个类定义中,用变量或者属性描述对象的状态。用方法描述对象的行为。
15、一个源程序中,只能用一个public类。
16、定义在方法体中的变量可以与定义在方法体外的变量同名。
17、面向对象的程序设计中,方法的特性是:抽象、封装、继承、多态
十、对象
1、声明类A中的对象a :static A a = new A(); 或者 A a = new A();或static A a;
2、面向对象技术中的对象具有标识、状态、行为三个因素。
3、一个对象有三个生命周期:创建 、使用 、清楚。
4、使用对象之前,必须声明并创建它。
5、创建对象的运算符是:new。创建的目的是给对象分配内存空间。
6、一个类对象一旦被声明创建后就可以使用,用对象名做前缀引用对象的变量和调用给它的方法。
7、通过圆点操作符(.)运算符与类的对象连接,可以访问此类的成员。
十一、构造函数
1、类A的构造函数声明:public A(int A){i=k;} 或 A(int x){......}
2、构造函数或构造方法是一个特殊的方法,用于对类的变量进行初始化。
3、构造函数的方法名必须和类名同名。
4、(1)、类的构造函数名必须和类名相同。
(2)、构造函数没有返回值
(3)、构造函数可以重载
5、如果一个类中没有定义的构造函数,java编译器会自动生成一个defult(缺省的)不带参数的构造函数。如果有了构造函数,编译器就不会再自动顶一个缺省的不带参数的构造函数。
十二、访问控制和修饰符
1、既能作为类的修饰符,也能作为类成员的修饰符的关键字是:public。
2、用于定义类成员的访问控制权的关键字:public、private、protected。
3、可以用非私有方法给类中的private变量赋值,以便另一个类中调用这个方法给这样的私有变量赋值。
4、final关键字能修饰:类、方法、属性。
5、abstract关键字能修饰:类、属性。
6、static关键字能修饰:方法、属性。
7、类的访问权限有两种:(1)、public(2)、default缺省的(即没有访问修饰符)
8、类成员(属性和方法)的访问控制权限有四种:
(1)、public:所有其它类都能访问。
(2)、private:只有本类中才能访问,是一种封装的体现。
(3)、protected:本类、同一包中的类以及其它包中的子类都能访问。
(4)、default(缺省的):本类、同一包中的类可以访问,声明时没有加修饰符,认为是friendly。
注意:Java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。
9、用static关键字修饰静态方法和静态变量。
10、静态属性和静态方法不是类的一个具体对象,它是类的所有对象公有的。
11、static(静态)变量可以是private变量。
12、使用静态成员可以用类名或对象名做前缀。
13、static(静态)变量不能处理非static成员,但是非static方法可以处理static成员。
14、static方法中不能引用this,但是非static方法中可以引用this。
15、类的私有属性和私有方法都不能被其子类直接访问。
十三、继承、覆盖
1、在java语言中,类之间的继承关系是单重的。
2、java中的接口是支持多继承的。但是java中的类不可以有多个直接父类。
抽象类也可以有子类。
3、子类的构造函数必须通过super关键字调用父类的构造函数。
4、子类可以继承父类的非私有成员,构造函数也能被继承和重载。
5、如果子类中的某个变量的变量名和它的父类中的某个变量完全一样,则成子类中的这个变量隐藏了父类的同名变量。
6、属性的隐藏式指子类从新定义从父类继承来的同名变量或属性。
7、如果子类中的某个方法的名字、返回值类型和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。
8、抽象、封装、继承、多态是java语言的四大特性。
9、实现软件的重用,在java语言中主要利用java的封装和多态技术。
10、Java仅支持类间的单冲继承。
11、子类的成员变量可以与其父类的成员变量同名。
12、方法的覆盖:子类重新定义继承自父类的同名方法,使之实现与父类方法不同的功能;方法的覆盖要求子类方法头定义必须与父类方法定义完全一样。
13、一个子类覆盖其父类的同名方法,必须方法名、返回值类型和参数列表都是相同的。
14、子类时通过super关键字引用被它隐藏的父类属性和调用被它覆盖了的父类的方法。
15、子类的对象可以直接向其父类对象赋值,但是父类的对象不能直接向子类的对象赋值。子类的对象一定是父类的对象。
16、Java语言中定义接口的关键字interface;接口的继承是使用extends实现的;接口支持是多继承;
17、Java中一个(父)类可以有多个子类,但是一个子类不可以有多个父类。
18、保留字this表示当前对象本身。
十四、多态和接口
1、定义接口的关键字是interface。
2、实现接口的关键字是implement。
3、抽象方法中只有方法头,没有方法。
4、Java语言的接口是特殊的类,其中包含静态变量(static)和抽象方法(abstract)。
5、接口中所有的属性均为public、static和final的。
6、抽象方法是可以被继承的。
7、抽象方法不仅存在于抽象类中,而且也可以存在接口中。
8、声明为final的方法不可以在子类中重新定义。
9、使用final关键字定义最终类和最终方法。
10、(1)、最终类不能做为父类。
(2)、最终方法不能被继承。
(3)、最终方法不一定只能存在最终类中。
11、声明为static和private的方法实际上是final。
12、接口中的方法均为抽象方法。
13、接口中的所有方法均为public。
14、Abstract和final不能同时修饰一个类。