面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
1.1对象
任何具有状态和行为的实体都称为对象。例如:椅子,钢笔,桌子,键盘,自行车等。它可以是物理和逻辑的。
1.2类
对象的集合称为类,它是一个逻辑实体。类是java编程中的基本单元;把具有相同行为和属性的事物归为一类;
1.2.1类的定义
通过class关键字定义一个类
语法:
作用域修饰符 修饰类关键字 类名{
//类体
}
建议:类的首字母大写,取名的时候要做到见名知意(可参照阿里巴巴开发文档:阿里巴巴Java开发手册_w3cschool)
2.成员变量和局部变量
成员变量:也就是全局变量也可以叫属性;
局部变量:定义在方法体内的变量;
3.作用域修饰符
1 public
当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。
2 protected
用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。
3 default(friendly)
如果一个类没有访问控制符,说明它具有默认的访问控制特性。这种默认的访问控制权规定,该类只能被同一个包中的类访问和引用,而不能被其他包中的类使用,即使其他包中有该类的子类。这种访问特性又称为包访问性(package private)。
4 private
用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。
特别注意:修饰外部类只能用public和默认(default(friendly))
4.this关键字
this:代表所在类的对象引用;方法被哪个对象调用,this就代表哪个对象
this关键字主要有三个应用:
1.this调用本类中的属性,也就是类中的成员变量;
2.this调用本类中的其他方法;
3.this调用本类中的其他构造方法,调用时要放在构造方法的首行。
1.调用成员变量
String name;
public void setName(String name) {
this.name = name;
}
这段代码中,有成员变量name与成员方法SetName(String name),由于成员方法接收的形参名称与成员变量相同,都是name,所以,这里可以使用this关键字来调用本类中的成员变量。
注意:
this关键字访问类的成员变量和成员函数时不受访问权限的控制,可以访问本类中所有的成员变量和方法,包括private的成员变量和方法。也可以通过this访问本类的static成员,不能在类的static成员或static块中使用this。
2.调用成员方法
public class Mxdx {
String name;
private void setName(String name) {
this.name = name;
System.out.println("setName: " + this.name);
}
private void thisTest(String name) {
this.setName(name);
System.out.println("thisTest: " + this.name);
}
public static void main(String[] args) {
Mxdx mxdx = new Mxdx();
mxdx.setName("小明");
mxdx.thisTest("小红");
}
}
这段代码中,之前的没什么区别,只是增加了一个成员方法thisTest(),在这个成员方法中,通过this关键字调用了之前的成员函数setName(),程序运行结果如下所示:
3.调用构造方法
使用this来调用其他构造方法有如下几个约束:
1.只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用。
2.不能通过this递归调用构造方法,即不能在一个构造方法中通过this直接或间接调用该构造方法本身。
3.通过this调用其他构造方法必须放在构造方法的第一行中执行。
4.由于super调用父类的构造函数也必须放在构造方法的第一行中执行,因此,通过this和super调5.用构造方法不能同时出现一个构造方法中。也不能在一个构造方法中多次调用不同的构造方法。
public class Mxdx {
public Mxdx() {
this("holle!");
}
public Mxdx(String name){
}
}
拓展:
this关键字除了可以引用变量或者成员方法之外,还有一个重大的作用就是返回类的引用。如在代码中,可以使用return this,来返回某个类的引用。此时这个this关键字就代表类的名称。
5.构造方法
构造方法,是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
构造方法格式:
public class 类名{
修饰符 类名(参数){}
}
1.2构造方法的注意事项
1.构造方法的创建:如果没有定义构造方法,系统将给出一个默认的无参数构造方法如果定义了构造方法,系统将不再提供默认的构造方法
2.构造方法的重载:如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法
3.推荐的使用方式:无论是否使用,都手工书写无参数构造方法