黑马程序员_JAVA面向对象

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

  一、面向对象简介

面向对象的思维方式:按照生活中的思维方式来编程。

 

1、首先确定谁来做,然后确定怎么做。

     例子:如中午不想下楼吃饭 ,叫同学帮忙打饭。

2、首先考虑整体,再考虑局部。

       例子: 用面向对象的思维方式构造一部电梯。则先考虑整体:这部电梯应该具有上、下、开门、关门、载重量等功能。其次才考虑局部,由什么零部件组成。

3、首先考虑抽象,再考虑具体。

       例子:党告诉我们要为人民服务,单到底是如何为人民服务,就是具体的东西。

                越是抽象的东西越不容易错。 

 

面向对象设计的最终目标消除重复代码。 

 

消除重复代码需要遵守:1、依赖注释原则。2、开发封闭原则。

 

二、类和对象

1、创建类的方法

class 类名{  
    属性;//属性也叫成员变量,主要用于描述类的状态  
    方法;//方法也叫成员函数(方法),主要用于描述类的行为  
}  
  
}

2、创建对象的方法、对象、对象的引用

类名 对象名 = new 类名();  
其中,类名()为构造函数<br>如:已存在Dog类.  
/** 
 **类是抽象的概念,对象是比较具体的概念 
 ***/  
 /** 
  **生成Dog的对象,new Dog()就是Dog的对象,而dog仅仅是引用,代表了Dog这个对象,即是这个对象的名字。 
  ** Dog dog就是创建了一个引用,名字为dog,dog指向了一个Dog的具体的对象。 
  ***/  
  Dog dog = new Dog();

3、对象的使用方法

 

使用对象调用变量(属性)和函数(行为):

1、对象.变量;  
2、对象.函数();

 例子:

Dog.java:

public class Dog {  
  
    String name;  
    String color;  
    String age;/**<br> 
具有引用的对象的方法 
<br>*/  
  
<br>    void jump()<br>               System.out.println ("会跳");  
    };  
}

 DogTest.java

public class DogTest {  
  
public static void main (String[] args) {  
    Dog dog = new Dog();  
  
    dog.name = "旺财";  
    dog.color = "黑色";  
    dog.age = "两岁";  
  
  
        System.out.print (dog.age+"的"+dog.color+dog.name);  
        dog.jump();  
}

 输出:两岁的黑色旺财会跳

4、多对象的创建方法

  一个类可以有很多的对象,每个对象可以有多种方法。

如上例中,可实例化多个Dog对象:

Dog dog2 = new Dog();  
  
Dog dog3 = new Dog(); <br><br>new构造函数。<br>

5、匿名对象的创建和使用方法 

可以不定义对象的应用名称,而直接调用这个对象的方法。这样的对象叫匿名对象。

如:

new Dog().jump();

 

匿名对象通常都是一次性用品,用完之后就丢,再也找不到。


三、语法的使用方法 

1、函数的重载

函数的重载:在一个类中,允许函数重名,但是参数列表不同。

如下例代码:

 suuu.java:

public class suuu {  
  
void fun(){  
    System.out.println ("无参数的fun函数");  
}  
void fun(int i){  
    System.out.println ("有参数的fun函数");  
}  
}

 suuuTest.java:

public class suuuTest {  
  
public static void main (String[] args) {  
    suuu suuu1 = new suuu();  
    suuu1.fun();  
}  
  
  
}

 输出:无参数的fun函数

 

解析:由于suuu.fun()没有参数,所以调用的是无参数的fun函数。若想输出为“有参数的fun函数”,则在fun函数中加入整形值即可,如suuu1.fun(5);.

 

意义: 因为函数名相同,说明行为相同,但是参数列表不同,说明目标不同。

 

使用对象来调用fun函数时,根据所传入的参数不同,编译器则调用不同的fun函数。

2、构造函数的作用 

 构造函数:如Dog dog = new Dog()中,new Dog()就是构造函数。

 

构造函数没有返回值类型的定义。

构造函数的名字必须和类名相同。

 

构造函数可以是有参的,也可以是无参的。

看下面例子:

Dog.java:

 

public class Dog {  
  
    Dog() {  
        //无参构造函数  
    }  
  
    Dog(String a,int b){  
        //有参构造函数  
        name = a;  
        age = b;  
  
  
    }  
    String name;  
    int age;  
}

DogTest.java:

public class DogTest {  
  
public static void main (String[] args) {  
    Dog dog1 = new Dog("旺财",3);  
    Dog dog2 = new Dog("来福",2);  
  
    System.out.println (dog1.name+dog1.age+"岁了");  
    System.out.println (dog2.name+dog2.age+"岁了");  
}  
  
}

输出:旺财3岁了
         来福2岁了

 

PS.无参构造函数系统可以自动生成,但是有参的构造函数系统不会生成。


你可能感兴趣的:(黑马程序员_JAVA面向对象)