java中包的使用:
1.为什么使用包:
为了对项目当中的进行分门别类的管理,避免同名类的命名冲突,对类中的属性和方法进行保护,增加安全性。2.如何创建包:
在eclipse中有两种方式
a.右键-->新建-->package
b.右键-->新建-->类-->设置类名和包名
通过语句打包:
package 包名;
3.包的命名:
构成包的名字的所有标识符都要小写。包名可以互相嵌套,通常是组织的倒置的域名加其它。
例如com.tarena.android.karen
4.导包:当前类如果要使用非当前包中的其它类,需要导入。
既可以导入系统包中的类,也可以导入自定义包中的类
如:import java.util.Scanner;
import grahpics.Shape;
构造方法:
与类同名,无任何返回值类型(连void也没有),在创建一个类的对象时调用。当我们定义了一个类没有为其显示定义任何构造 方法时,该类被加载时系统会为其创建一个隐式无参构造方法。
构造方法的重载:
在一个类中可以定义多个构造方法,这些构造方法需要有不同的参数列表。参数的个数不同,或数据类型不同。
这样的多个构造方法形成重载。
方法重载:方法重载是事物多态性的一种体现手段。
在一个类中可以有多个名称相同的方法,但是这些方法具有不同的参数列表,这样的几个方法形成重载。仅有返回值类型不同 无法构成方法重载。
封装:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
在eclipse中封装的快捷键:alt+shift+s选择Gernate Getters and Setters
封装的好处:
隐藏事物的实现细节,限制外部的访问方式,降低用户的使用难度。
this关键字的使用:指代当前的类的对象的引用。
当前类的一个成员方法去调用另一个成员方法时可以通this.方法名().
区分局部变量和成员变量,当局部变量和成员变量同名时,this.变量名访问是本类的成员变量。
本类的一个构造方法调用类的另一个构造方法时this();
继承:
1、子类继承父类中所有非私有的属性和方法,子无法继承父类的构造方法。
2、子类只有一个直接父类(java只支持单继承)
3、在继承关系中当一个子类继承了一个父类,创建一个子类对象时会默认先创建一个父类对象再创建一个子类对象。
4、如果一个父类没有定义无参构造方法,那么可以在子类构造方法中显式的指明调用父类的哪一个带参数构造方法,否则将会 报语法错误。
5、在子类中可以通过super关键字调用父类的方法,属性,以及构造方法。
访问修饰符
private私有的:所修饰的属性方法只在本类中可见。
默认访问修饰符:所修饰的属性和方法在当前包中子类和非子类可见。不同包中都不可见。
protected:所修饰的属性方法在当前包中子类非子类可见。不同包中只有子类可见。
public:可见度最大无论是否在同一个包中,子类和非子类都呆见。
在继承关系中子类对象创建过程:
先初始化父类的属性,再调用父类的构造方法,然后再初始化子类属性,最后调用子类的构造方法,子类对象创建完成。
方法重写:
在继承关系中,子类中如果拥有和父类签名完全相同的方法(访问修饰符要大于等于父类方法的访问修饰符),那子类的方法会完 全覆盖父类的方法。叫做方法的重写。构造方法不能被继承所以也不能被重写。
抽象类:
当父类没有必要被实例化的时候,仅是一个抽象的概念,我们可以把父类定义成抽象类,抽象类中可以通过定义抽象方法来约 束子类的行为。(如如果一个类中有一个方法是抽象的,那么它所在的类一定要被定义成抽象象类)
当一个子类继承了一个抽象的父类时,该子类必须要实现从父类那里继承过来的抽象方法,否则该子类也要定义成抽象的。