一、函数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,„){
执行语句;
return 返回值;
}
当函数没有具体的返回值时,返回的返回值类型用void关键字表示。
如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数。结束功能。
二、重载:在一个类中,如果出现了二个或二个以上的同名函数,只要它们的参数个数或参数的类型不同,则可称该函数重载。
三、数组:用于存放同一类型数据的一个容器。
数组的二种表现形式:
1)元素类型[] 数组名=new 元素类型[元素个数];
2)元素类型[] 数组名={元素1,元素2,...};
元素类型[] 数组名=new 元素类型[]{元素1,元素2,...};
四、对象:即对各种具体物体抽象后的一个概念。如:学生、电脑、手机之类。学生有学号、姓名、班级、年龄等特性,称之为对象的属性。对象还有功能,如学生可以打篮球、上课、玩游戏等功能,这些功能被称为对象方法,实际上这种方法就是函数。外部访问对象内的属性或方法,必须先引用对象(对象 名字=new 对象();),然后用点号访问对象的属性和方法(名字.属性或名字.方法)。
五、类:是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。
在Java类的定义规范里面,有两方面内容来对应类中的数据和行为:
1)属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)
2)方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作)
六、对象实例化:相当于定义了一个对象,但是并不能直接用。那么就必须实例化才能用:对象 名字=new 对象();那么名字就是对象的实例化。
七、JAVA对象属性修饰符:public、protect、default、private权限问题
public:能够被本类、同包、子类、其它包所调用使用
protect:能够被本类、同包、子类所调用使用
default:能够被本类、同包所调用使用
private:只能被本类所调用使用。如果想被其它类所用,则添加Get和Set方法。规范写法:对于属性xxx,用setxxx(){},getxxx(){}对其操作。
八、面向对象的三大特性:继承(extends )、封装、多态
继承:从已有的类中派生出新的类,新的类能吸收已有类的数据属性和方法,并能扩展新的能力。相当于儿子继承父亲的产业,获得父亲所用的属性和方法,并能使自己扩展新的方法。JAVA不支持多继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。但一个父类可以被多个子类继承。 class b extends a{……} b类继承a类
封装:把过程和数据包围起来,控制用户对类的修改和访问数据的程度,对数据的访问只能通过已定义的接口。在java中通过关键字private实现封装。用Set和Get定义方法来访问数据。
多态:接口的多种不同的实现方式即为多态。方法的重写和重载是JAVA多态性的不同表现。
重写是父类与子类之间多态性的一种表现。
重载是一个类中多态性的一种表现。
如果在子类中定义的某方法与其父类有相同的名称和参数,则称之为重写。
九、static:表示"静态"意思。用来修饰成员变量和成员方法。被修饰的成员变量和成员方法独立该类的任何对象。不依赖类特定的实例,被类的所有实例共享。即:被static修饰的成员变量和成员方法不需要实例化就可以直接使用,可以直接通过类名来访问,访问语法为:
类名.静态变量名
类名.静态方法名(参数列表...)
因此静态方法中不能用this和super关键字。
十、final:指这个变量不可再次被赋值,而变量所代表的对象,其具有的任何属性都可以变化。
十一、构造函数:即构造方法。构造函数在对象被创建时就会被调用,用户初始化,而且只能执行一次。而一般函数,是对象创建后,需要调用才执行,可以被调用多次。一个类中可以有多个构造函数,多个构造函数是以重载的方式来体现的。
十二、接口(interface):接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。接口中没有构造方法,不能把实例化。必须通过类来实现(implements)它的抽象方法。一个接口不能实现多个接口,但它能继承多个接口。当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类。不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例。一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承。
接口的定义:
public interface USB //定义一个抽象类USB接口
{
public void insert(); //插入方法
public String read(); //读
public String write(String s); //写
public void pop(); //弹出
}
接口的实现:
public class UDisk implements USB //实现 USB接口
{
public void insert(){} //插入方法具体实现
public String read(){} //读具体实现
public String write(String s){} //写具体实现
public void pop(){} //弹出具体实现
}
接口的引用:
public static void main(...)
{
USB u=new UDisk();
u.方法名(参数);
}
十三、抽象类:使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。
抽象方法声明时采用的语法:
abstract void f();
作用:通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性,
例如:
abstract class A {
public abstract void doSomething();
}
class B extends A {
public void doSomething() {
System.out.println("do B");
}
}
class C extends A {
public void doSomething() {
System.out.println("do C");
}
}
public class Test {
public static void main(Stringp[] args) {
A a1 = new B();
A a2 = new C();
B b = new B();
C c = new C();
doSomething(a1); //这里
doSomething(a2); //这里
doSomething(b); //这里,如果下面的方法不是用抽象类作参数,比如用C c做参数,这里会有什么问题?
doSomething(c); //这里
}
public static void doSomething(A a) {//这里,用抽象类,为什么,自己思考
a.doSomething();
}
}
//这个例子只是抽象类的最基本的设计模式,和接口差不多
接口与抽象类的区别:抽象类(abstract class)是具体类的继承(extends)。接口(interface)是具体类的实现(implements )。
抽象类既有方法的具体实现,又有没有具体实现的抽象方法。接口只能定义方法,而不能有方法的实现。