java面向对象程序设计
一:面向对象的优点
1.与人类的思维习惯一致
2.信息隐藏,提高了程序的可维护性和安全性
3.提高了程序的可重要性
定义:抽象是从众多的事务中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。
在JAVA中就是形成类的过程。
抽象和封装:
第一步:发现类
第二步:发现类的属性
第三步:发现类的方法
1.2.1 创建类和对象
public class Hero {
public String name="萧大侠";
public int health =100;
public String birth;
public int loyalty=0;
public String occupation="骑士";
public String sex="男";
public void print() {
System.out.println("英雄的介绍:\n我的昵称叫"+this.name+
",生命值是"+this.health+",忠诚度是"+this.loyalty+
",我的职业是"+this.occupation);
}
}
使用this关键字,this通常指当前对象的引用,它可以调用当前对象的成员。
this.nme; //调用当前对象的属性
this.print(); //调用当前对象的方法
类:主要由属性和行为组成,属性和行为又称为类的成员变量(成员属性)和成员方法,
统称为类的成员(除此之外,类的成员还包括构造方法、代码块等)。
对象的使用特点:
构造方法创建对象,如:"Army army=new Army();"
对象名.属性名的方式调用属性,如"hero.name="郭靖";"
对象名.方法名的方式调用,如"army.print();"
类和对象是面向对象中的两个核心概念。类是对某一类事物的描述,是抽象的、概念上的定义。
对象是实际存在的、具体的事物个体。类和对象的关系就好比模具和用模具制作出的物品的关系。
java中有常量,使用final关键字修饰,通常常量名都大写。
final除了可以用来修饰属性外,还可以修饰方法和类。
构造方法的名称和类名相同,没有返回值类型。
主要作用就是在创建对象时执行一些初始化操作,如给成员属性赋初值。
方法名相同,参数列表不同,这称为构造方法的重载。
注意:
方法重载的判断:
1.必须在同一个类里
2.方法名相同
3.参数列表不同
4.与方法返回值和方法修饰符没有任何消息
在使用this调用自身的其他构造方法时,只能作为第一条语句。
封装:是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接 访问,而通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的具体步骤:修改属性的可见性来限制对属性的赋值和访问;为每个属性创建赋值的(setter) 方法和取值(getter)方法, 用于对这些属性的存取;在赋值方法中,加入对属性的存取控制语句。 封装的好处:隐藏类的实现细节,让使用者只能通过程序规定的方法来访问数据;可以方便地加 入存取控制语句,增加安全性和可扩展性,限制不合理操作。
经验封装时会用到多个权限控制符来修饰成员变量和方法,区别如下:private:成员变量和方法只能在其定义的类中被访问,具有类可见性。默认:成员变量和方法只能被同一个包里的类访问,具有包可见性。protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问(父类、子类的概念将在第2章讲解)。public:可以被同一个项目中的所有类访问,具有项目可见性,这是最大的访问权限。
this关键字是对一个对象的默认引用。在每个实例方法内部,都有一个this引用变量,指向调用这个方法的对象。
使用this调用成员变量,解决成员变量和局部变量的同名冲突。
public void setName(String name){
this.name=name; //成员变量和局部变量同名,必须使用this
}
public void setName(String m){
name=m; //成员变量和局部变量不同名,this可以省略
}
使用this调用成员方法
public void work(int n){
health=health-n;
this .print(); //this可以省略,直接调用print();
}
使用this调用重载的构造方法,只能在构造方法中使用,必须是构造方法的第一条语句。
public Army (String name ,String birth){
this(name,birth);
this.name=name;
this.name=birth;
}
注意
public Army (String name, int health, int loyalty, String birth)
this (name,birth);
//调用重载的构造方法
this. health = health;
this. l oyalty = loyalty;
因为this在对象内部指代自身的引用,所以this只能调用实例变量,实例方法和构造方法。
this不能调用类变量和类方法,也不能调用局部变量。

浙公网安备 33010602011771号