Java基础--面向对象1

来源:互联网 发布:郑州平面设计美工培训 编辑:程序博客网 时间:2024/06/05 04:47

1.面向对象设计思想

对于去新疆的问题:

c语言面向过程:我开车,我挂挡,我踩油门,我过河北,……

Java面向对象:我命令车去新疆,车怎么去不关我的事

面向对象的基本思想是,从现实世界中客观存在的事物出发来构造系统,冰在系统的构造中尽可能运用人类的自然思维方式。

常采用的方法与原则,如抽象,分类,继承,聚合,多态等。

2.对象和类

对象用计算机语言对问题域中事物的描述,对象通过属性和方法来分别对应事物所具有的静态和动态属性。


类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所因具有的静态和动态属性。

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

类(对象)之间的关系

关联关系:方法的参数是另一个类的对象(教授教(方法)研究生(参数),研究生被另一个类所用)

继承关系:xx是一种xx

聚合关系:整体和部分,xx是xx的一部分

实现关系:大卡车,轿车,自行车实现go,各有各的方法

多态

Java与面向对象

对象是Java程序的核心,在Java程序中“万事万物皆对象”

对象可以看成是静态属性(成员变量)和动态属性(方法)的封装体

类是用来创建同一类型的对象的模板,在一个类中定义了该类对象所具有的成员变量和方法

成员变量=属性    方法=函数

例:设计一个狗抓老鼠的类和方法

public class Dog {    int furColor;    float height;    float weight;    void catchMouse (Mouse m){        m.scream();    }    public static void main (String[] args){        Dog d = new Dog();        Mouse m = new Mouse();        d.catchMouse(m);    }}

3.Java类的定义

class关键字来定义一个类

class 类名

class Person{    private int id;    private int age = 20;//成员变量定义    public int getAge(){        return age;    }//定义方法}

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化

成员变量作用于整个类体

局部变量必须初始化

4.引用

 Java语言中除基本类型(四类八种)之外的变量类型都称之为引用类型,引用类型占两块内存

Java中的对象通过引用对其操作的。

String s;//声明了一个String类型的引用变量,但并没有使它指向一个对象

s = new String ("helloworld");//使用new语句创建一个String类型的对象并用s指向它以后可以通过s完成对其的操作,前面提到new出来的东西存在堆内存里

如何在内存中区分类和对象?

类是静态的概念,代码区

对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)而方法只有一份,执行的时候在占用内存。

5.对象的创建和使用

必须使用new关键字创建对象

使用对象(引用). 成员变量或来引用对象的成员变量

使用对象(引用). 方法(参数列表)来调用对象的方法

同一类的每个对象有不同的成员变量存储空间

同一类的每个对象共享该类的方法

6.构造方法

 构造方法是一种特殊的方法,具有以下特点。
(1)构造方法的方法名必须与类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(5)构造方法可以重载,以参数的个数,类型,顺序。

 

使用new+构造方法 创建一个新的对象

构造函数是定义在Java类中的一个用来初始化对象的函数

构造函数与类同名且没有返回值

例如:

Person的构造函数

public class Person{    int id;    int age;    Person (int n,int i){        id = n;        age = i;    }}

在另一个类里面可以调用构造函数

public class Texs {    public static void main(String[] args){        Person tom = newPerson(1,25);        Person john = newPerson(2,24);        System.out.println(tom.age);    }}

输出结果为25

 

构造函数

当没有指定构造函数时,编译器为类自动添加形如  类名(   ) { }的构造函数

如:

class Point {

    public int x;

    public int y;

}

……Point p = new Point();……

7.约定俗成的命名规则

类名的首字母大写

变量名和方法名的首字母小写

运用驼峰标识(名字有多个单词构成每个单词的首字母大写,如catchMouse)

0 0
原创粉丝点击