您的位置:首页 > 编程语言 > Java开发

OOP(面向对象编程)基础一 —— Java语言

2013-03-21 13:24 120 查看

OOP是面向对象的一种设计和实现软件系统的方法。

OOP是在程序中模拟显示世界中的概念,现实世界中的所有事物都被视为对象。

 

一.那么在生活中那些物体是对象呢?

1.       生活中具体的某一个物体或事物就是一个对象。

2.       一些抽象的对象(生活中不存在,有人构想的对象)。

 

了解了什么是对象,那么我们应该如何去描述对象呢?

1.       特征

2.       行为(用途/功能)

 

例子:

“A在学习java,学分加1了。”

 

  在这个例子中A就是对象。我们描述A这个对象,通过:“姓名为A”,“A有学分”这两个特征来描述,还通过“学习”这这个行为来描述。

 

生活中有许许多多的对象,我们需要对他们进行归类,形成——类。

二.生活中是如何对物体进行分类的呢?

相似的特征或相似的行为对对象进行分类。

我们构建类,可能是直接根据现有的场景构建,还可能是根据生活中类的特征和行为进行定义。

根据定义我们知道,类由两部分组成:

1.  属性    属性对应的是对象的特征

2.  方法    方法对应的是对象的行为

 

三.JAVA中,我们将现实生活中概念进行定义,形成java中的类。

类的基本结构:

 

public class 类名 {
//声明属性的格式
private 数据类型 属性名;
//定义方法的格式
public 返回值数据类型 方法名(数据类型 参数名,...){
//代码
}
}

 

例子:

“A在学习java,学分加1了。”

public class Student {
private String name;
private double score;
public void Study(){
}
}

 

在程序中我们定义了类,我们要用类来实例化对象。

java中实例化对象和调用方法的格式

   实例化对象的关键字是:new

 

         格式:

//类名 对象名 = new 类名();
Student stu = new Student();

     调用方法的格式:

//对象名.方法名(参数值,...);
stu.setName("A");
stu.study();

 

对象是否可以作为参数进行传递?

可以的!

public class Hero {
private String name;
private double blood;

//定义一个设置姓名属性的方法
public void setName(String na){
name = na;
}
//定义一个获取姓名属性值的方法
public String getName(){
return name;
}
//定义一个设置血量属性的方法
public void setBlood(double bl){
blood = bl;
}
//定义一个获取血量属性值的方法
public double getBlood(){
return blood;
}
//对象mon作为参数进行传递
public void Fight(Monster mon) {
mon.setBlood(mon.getBlood()-1);
System.out.println(name+"砍了"+mon.getName()+"一滴血");
}
}

 

java中实例化对象会用到构造函数,那么什么是构造函数呢?

四.构造函数(构造函数又叫做构造方法、构造器)

因为Java会给每一个类提供一个默认的构造函数(不带任何参数的构造函数).

     1.构造函数的格式

 

public 类名(数据类型 参数名,...){
//代码
}

 例子:Student s1=new Student();

在这个例子中调用了 

 public Student(){}

 

 这个构造函数,这就是java中在你没有定义构造函数时提供的默认的构造函数。

而当我们在类中定义了构造函数,则默认的构造函数将被覆盖,无法再继续使用了;只能使用我们定义的构造函数。

构造函数严格地说不算是“方法”——只因为它也可以传入参数。因而与方法存在许多区别。

  

   2.普通方法和构造函数的区别

       1.构造函数是不需要定义返回值数据类型的;普通方法必须要定义返回值数据类型。 

       2.构造函数的名字必须和类名完全相同;普通方法的名字可以自己定义。

       3.构造函数是用来实例化对象的;普通方法是用来执行对象的某一个行为的。

       4.构造函数每使用一次,就会实例化一个新的对象;普通方法在使用过程中,只要对象不变,那么还是同一个方法。

  

   3.构造函数的用途 

         1.构造函数用来实例化对象的。

         2.构造函数还可以用来给属性设置初始值。

 

五.方法的重载

  实现方法重载的条件是:

     1.方法的名字必须要完全相同

     2.方法所带的参数个数、参数类型和参数的顺序必须要有一个不同。

 调用是根据参数来决定的。

例子:

public void study(){
score++;
System.out.println(name+"正在学习中,学分是"+score);
}
/**
* 重载的学习方法
* @param score参数
* @reture 返回score学分
*/
protected double study(double score){
this.score+=score;
System.out.println(name+"正在学习中,学分是"+this.score);
return this.score;
}

 上面的例子中有study方法的重载,注意:

  虽然study的类型不一样,根据定义任然是方法个重载。

 

六.this关键字

当属性名和参数名相同的时候,使用this关键字来区分,加上this的表示属性,没有加的则是参数。

例子:

String name=”NetJava”;
Student st2=new Student(name);
//构造时
public Student(String name){
this.name=name;
}

 

this表示的是什么呢?

    this表示的是当前调用方法的对象。

在本例子中this表示的是st2所代表的对象。 

 

 

本次OOP基础就先介绍到这里,下一期将从继承等方面继续进行介绍,谢谢大家!

 

 

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: