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不能调用类变量和类方法,也不能调用局部变量。

 

 

 

posted @ 2022-09-28 12:54  月丫湾  阅读(282)  评论(0)    收藏  举报