----------------------- android培训、java培训、java学习型技术博客、期待与您交流!-----------------------
函数是定义在类中具有特定功能的独立小程序,也称方法。
格式:
修饰符返回值类型函数名(参数类型形式参数)
{
执行语句;
return 返回值;}
例如定义一个求两整数之和的函数 public int add(int x,int y)
{int z=x+y;
return z; }
函数可以将功能封装,被调用才执行,实现代码的复用性。函数没有返回值的话,用void关键字,可省略return语句。函数的结果返回给调用者去处理。
函数重载:若在一个类中,有一个以上的同名函数,但参数列表不同就用到重载。重载优化了程序设计,提高阅读性。
例如int add(intx,int y)与int add (int x,int y,int z)就重载了。
数组:同一种数据类型的集合。数组可以自动给元素编号,即角标,从0号开始
格式:1.元素类型[] 数组名=new [元素的个数或者数组的长度];
例如:int [] arr=new int [2];建立了一个int型数组,数组长度为2
2. 元素类型[] 数组名=new元素类型[]{}
例如:int [] arr=new int [];{1,3}建立了一个int型数组。有两个元素,分别是1,3。
获取数组的元素,用for经行遍历。数组常见操作是获取最值,排序等。
数组分为一维数组和二维数组。二维数组格式:
1.Int [][] arr=new int [][]
Int [][] arr=new int [2][3]; 该数组有两个一维数组,每个一维数组有3个元素;
Int [][] arr=new int [2][]; 该数组有两个一维数组,每个一维数组初始化值为null。
2.Int [][] arr=new int {{1,3}{5,7}};
该数组有两个一维数组,且每个一维数组已初始化。
面向对象
面向对象相对面向过程而言,强调的是对象,将功能封装近对象,强调具备了功能的对象。
类与对象:对象是实实在在的个体;类是个体概念上的抽象描述。
类的定义其实就是定义类中的成员,成员即成员变量和成员函数。
成员变量和局部变量的区别:
成员变量定义在类中,在整个类中都可以被访问。成员变量随着对象的建立而建立,存在于对象所在的对内存中。成员变量有默认初始化值。
局部变量制定一在局部范围内,存在于栈内存中。作用的范围结束,变量空间会自动释放。局部变量没有默认初始化值。
开发就是找对象:找对象用,若没有对象就创建对象,然后使用对象。
例如class Car
{ String color=blue”;
void show()
{ System.out.println(color);
}
}
class CraTest
{
Car c=new Car(); //建立对象
c.color=”green”; //对对象的属性经行修改
c.show(); //使用对象的功能
}
匿名对象:
匿名对象是对象的简化形式
Car c=new Car(); c.color=”green”;用匿名对象为new Car().color=”green”;
匿名对象使用方式一:当对象的方法只调用一次时,可以用匿名对象来完成,这样写会比较简化。若是对一个对象进行多个成员调用时,不能用匿名对象,必须要给对象起名字。
匿名对象使用方式一:可以将匿名对象作为实际参数进行传递。
面向对象三个特征:封装、继承、多态。
封装
封装就是只隐藏对象的属性和实现细节,仅对外提供公安共访问方式。
好处:将变化隔离、便于使用、提高安全性和重用性。
原则:将不需要对外提供的内容都隐藏起来。把属性隐藏起来,提供公共方法对其访问。
将对象或属性隐藏,用私有关键字private进行私有化。
Private关键字:权限修饰符,权限最小,修饰成员变量和成员函数,被私有化的成员仅在本类中有效。成员变量私有化后,对外提供set、get方法对其进行访问,提高对数据访问的安全性。
构造函数:
对象已建立就会调用与之对应的构造函数。
特点:函数名鱼类名相同,不定义返回值类型,不写return语句。
作用:给对象进行初始化。
当一个类中没有定义构造函数,系统会默认给该类加一个空参数的构造函数,方便对象的初始化。当类中自定义了构造函数,系统不再添加默认的构造函数。
多个构造函数都是已重载的形式存在的。
构造函数与一般函数:构造函数是对象一建立就运行,给对象初始化。一般函数是对象调用时才执行,给对象添加独享具备的功能。一个对象建立后,构造函数只运行一次,一般方法可以调用多次。
this关键字
this代表其所在函数所属对象的引用。
this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,用this来表示这个对象。本类功能内部使用了本类对象,都用this表示。
static静态关键字
用于修饰成员变量和成员函数。static静态修饰的成员对着类的加载而加载,优先于对象存在,被所有对象所共享且可以直接被类名调用。
静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。且静态方法中不能出现thissuper关键字。
静态利处:对对象的共享数据进行单独空间的存储,节省空间。可以直接被类名调用。
静态弊端:生命周期太长。访问有局限性。(静态虽好,只能访问静态。)
静态代码快:static {执行语句}
特点:随着累的加载而执行一次,优先于主函数执行,用于给类经行初始化。
继承
如果多个类有相同属性和行为时,将共性部分抽取出来放在一个类中,其他类不用再次定义共性属性和行为,只需继承该类即可。有共性的类叫父类,其余类叫子类。子类可直接访问父类中未私有的属性和行为。继承关键字extends。Java支持单继承不支持多继承,可以实现多个接口。
子类与父类有同名成员时,用this,super区分,this代表本类引用,super代表父类引用。This和super只能写在类中第一句
子父类中构造函数:
子类对象初始化时,父类构造函数也运行,因为子类第一句是隐式的super(),子类调用父类构造函数时用super语句。父类中没有空参数构造函数时,子类必须手动通过super或this语句指定要访问的构造函数。子类的构造函数第一行也可以手动制定this语句访问本类中的构造函数。
覆盖:也叫重写。子父类中有相同的函数,且父类的函数不是私有,子类调用这个方法会覆盖掉父类的方法内容。子类覆盖方法中,继续使用被覆盖的方法通过super.函数名获取。
覆盖的应用是当子类需要父类的功能,而功能主体子类有特有的内容,就复写父类方法。因此子类不仅沿袭父类方法又定义子类特有的内容。
覆盖时,子类方法权限要大于父类权限。静态只能覆盖静态。
Final关键字:最终
Final修饰类,方法,变量。Final修饰的类和方法不能被覆盖,final修饰的变量是最终常量,不能被修改。变量可以是成员变量和局部变量。
内部类定义在类中的局部位置时,只能访问该局部被final修饰的局部变量。
抽象类:没有方法主体的方法,该方法的具体实现由子类完成,该方法成为抽象方法。包含抽象方法的类就是抽象类。抽象类和抽象方法都要用abstract修饰。抽象方法:修饰符 abstract 返回值类型函数名(参数列表);
抽象类是具体事物抽取出的功能,但各个事物的具体内容不同,所以抽象类不能被实例化,也就是不能new对象。抽象类的子类覆盖掉抽象类中所有的抽象方法后才可以创建对象,负责该子类也是抽象的类。
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
详情请查看:http://edu.csdn.net/heima