面向对象的基础

面向对象的基础(1)
主要内容:
1.什么是面向对象
2.应该如何学习面向对象
3.面向对象的思维方式。
什么是面向对象?
1.面向对象是一种编程方法
2.面向对象是一种思维方式
3.面向对象不是一种编程语言
应该如何学习面向对象?
1.掌握一门面向对象语言的语法
2.掌握面向对象的思维方式
3.熟悉面向对象设计原则
4.掌握面向对象设计模式。
什么是面向对象思维方法?
1.首先确定谁来做,其次确定怎么做
2.首先考虑整体,其次考虑局部

3.首先考虑抽象,其次考虑具体。


面向对象的基础(2)

主要内容:
1.创建类的方法
2.创建对象的方法
3.对象和对象的引用

定义类的方法
class 类名
{
属性
方法
}
属性:也叫成员变量,主要用于描述类的状态。
方法:也叫成员方法,主要用于描述类的行为。


类的表示方法:

面向对象的基础_第1张图片

类的定义方法:
class persion{//类名
int age;//成员变量
void shout(){//成员函数
System.out.println("***");
}
}

生成对象的方法:
格式:
类名 对象名 = new 类名();//数据类型属于引用数据类型

面向对象的基础_第2张图片

如上图所示,JVM在使用的时候将内存分成了两个部分,一个是栈内存,一个是堆内存。栈内存中存放的是对象的名字(也就是引用)。引用表示这个名字代表一个对象实体,堆内存中存放的是对象的实体。

下图形象的表示了这一过程:

面向对象的基础_第3张图片

这是d不是对象,它代表对象(只是个引用)。比如张三这个名字不是一个人,只是这个名字代表了一个人的含义是相同的。


类和对象的关系:

类是抽象的,对象是具体的。


面向对象基础(3)
主要内容:
1.对象的使用方法
2.多对象的创建方法
3.匿名对象的创建和使用方法

对象的使用方法:
使用对象调用变量和方法:
1.对象名字.变量
2.对象名字.方法函数

创建类:

class Dog{
    String name;
    int age;
    String color;
 
    void jump{
        System.out.println("Jump");
    }
}

class Test{
    public static void main(String args[]){
        Dog d1 = new Dog();
        Dog d2 = new Dog();
        
        d1.name = "旺财";
        d2.name = "四喜";
        d1.age = 2;
        d1.color = "黑色";

        d.jump();
        System.out.println("名字是 "+d.name); 
    }
}
面向对象的基础_第4张图片生成多个对象的额情况

匿名对象的使用
可以不定义对象的引用名称,而直接调用这个对象的方法这样的对象叫做匿名对象。它是一次性的对象,用过后,就再也找不到了,如:
new Dog().jump();

class Test{
	public static void main(String args[]){
		new Dog().jump();
		new Dog().jump();
		//这两个Dog是不同的对象。是在堆内存中生成了两个Dog对象
	}
}

面向对象基础(4)

主要内容:

1.函数的重载
2.构造函数的作用

重载的定义:
1.两个或者多个函数在同一个类当中
2.函数名相同
3.参数列表不同。

例子:

class A{
    void funA(){
        System.out.println("没有参数的funA函数");
    }

    void funA(int i){
        System.out.println("使用了带整型参数的funA函数");
    }

    void funA(int a,double b){
        System.out.println("使用了带两个参数的funA函数");
    }
}
创建了一个类文件,内容如上所示。有三个funA,但是这三个funA的参数列表不同。这三个funA就是所谓的重载函数。

主函数:

class Test1{
    public static void main(String args[]){
        A a = new A();
        a.funA();
        a.funA(10);
        a.funA(10,10.5);
    }
}
分别调用不同的重载函数,输出的结果也是不同的。


构造函数:

一个构造函数由:类名+括号组成,这个括号中可以有参数

注意:new 后面加的就是一个构造函数。如果没有写构造函数,编译器在自动加一个无参数,且方法为空的构造函数。假如已经添加了有参的构造函数,编译器就不会自动添加无参的构造函数了。

class A{

    A(){
        System.out.println("我是无参的构造函数");
    }

    A(int i){
        System.out.println("我是有参的构造函数");
    }

}
主函数:

class Test1{
    public static void main(String args[]){
        A a = new A();
        A b = new A(10);
    }
}
构造函数的作用:在生成一个对象的时候可以对这个对象进行一系列的初始化工作。使得初始化变得简洁。






你可能感兴趣的:(面向对象的基础)