面向对象的核心就是对象,为了在程序中创建对象,首先需要定义一个类.
类是对象的抽象,它是用来描述一组对象的共同特征和行为.类中可以定义成员变量和成员方法
其中成员变量用于描述对象的特征,也被称为属性,成员方法用于描述对象的行为,可简称为方法.
在java中,定义在类中的变量称为成员变量,定义在方法中的变量称为局部变量.(如果在某个方法中定义的局部变量和成员变量同名,这种情况是允许的).
Person p = new Person();
上面的代码中,"new Person()"用于创建Person类的一个实例对象,Person p则是声明了一个Person类型的变量p,意思就是把讲Person对象
在内存中的地址赋值给变量p,这样变量p便持有了对象的引用.
Person p1 = new Person();
Person p2 = new Person();
虽然p1 p2都引用了Person类的两个实例对象,但是p1和p2的对象是两个完全独立的个体
类的封装就是指定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问,为了能让外界访问私有属性
,需要提供一些使用public修饰的公有方法.
构造方法:
①方法名与类名相同.
②在方法名的前面没有返回值的声明.
③在方法中不能使用return语句返回一个值.
有参的构造方法,可以实现对属性的赋值.
构造方法也可以重载,机是在同一个类中定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可.
当在程序中创建一个类是,如果这个类中没有定义构造方法,系统会自动为这个类创建一个默认的构造方法.
但是由于系统所提供的构造方法往往不能满足需求,因此,我们可以在自己在类中定义构造方法,一旦为该类定义了构造方法,系统
就不再提供默认的构造方法了.
this关键字
①:
通过this关键字可以明确的访问一个类的成员变量,解决与局部变量名称冲突问题.
②
在同一个类中,可以当做类名.方法名来使用
③
构造对象是在实例化对象时被Java虚拟机自动调用,在程序中不能像调用其他方法一样调用构造方法,但可以在一个构造方法中
使用this(参数1,参数2)的形式来调用其他的构造方法.
static
在java类中,可以使用static关键字来修饰成员变量,该变量被称为静态变量.
静态变量被所有实例共享.
static关键字只能用于修饰成员变量,不能用于修饰局部变量.
静态方法:
就是我们是其他类中想调用这个类中的方法,但是我们又不想创建这个对象,我们可以把这个方法前面加个static
这个方法变称为静态方法.
这样我们就可以通过类的实例对象来访问了
在一个静态方法中只能访问用static修饰的成员,
原因在于没有被static修饰的成员需要先创建对象才能访问,
而静态方法在被调用时可以不创建任何对象.
单例模式:
class Single{
private static Single TNSTANCE = new Single();
private Single(); //私有化构造方法
public static Single getInstance(){ //提供返回该对象的静态方法
return INSTANCE;
}
}
内部类:
在Java中,允许在一个类的内部定义类,这样的类称作内部类,这个内部类所在的类称作外部类.
在一个类中,除了可以定义成员变量,成员方法,还可以定义类,这样的类被称作成员内部类.
在成员内部类中可以访问外部类的所有成员.
如果想通过外部类去访问内部类,则需要通过外部类对象去创建内部类对象
格式:外部类名.内部类名 变量名 = new 外部类名().new内部类名.
|
|