(面向对象) 面向对象概述及成员变量和局部变量的区别

面向对象思想概述

面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。面向对象是基于面向过程的编程思想,把实现解决问题步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。这样结构就清晰了很多。用的时候,找到对应的类就可以了。

举例:把大象装进冰箱

    面向过程:
        动作有哪些呢?
            A:打开冰箱门
            B:装进大象
            C:关闭冰箱门
            
        代码体现;
          

 class Demo {
                public static void main(String[] args) {
                    /*
                    System.out.println("打开冰箱门");
                    //打开冰箱门的东西,我现在仅仅是为了演示,就写了一个输出语句
                    //其实,它可能需要做很多操作。
                    //这个时候代码就比较多一些了
                    //假设我要多次打开冰箱门,
                    //代码一多,每次都写一遍,麻烦不
                    //我们就应该用方法改进
                    
                    System.out.println("装进大象");
                    System.out.println("关闭冰箱门");
                    */
                    
                    //写了方法以后,调用就改变了
                    open();
                    in();
                    close();
                }
                
                public static void open() {
                    System.out.println("打开冰箱门");
                }
                
                public static void in() {
                    System.out.println("装进大象");
                }
                
                public static void close() {
                    System.out.println("关闭冰箱门");
                }
            }


    
    面向对象:
        我们怎么才能更符合面向对象思想呢?
            A:有哪些类呢?
            B:每个类有哪些东西呢?
            C:类与类直接的关系是什么呢?
            
        把大象装进冰箱的分析? (如何分析有哪些类呢?UML。名词提取法。)
            A:有哪些类呢?
                大象
                冰箱
                Demo
            B:每个类有哪些东西呢?
                大象:
                    进去
                冰箱:
                    开门
                    关门
                Demo:
                    main方法
            C:类与类直接的关系是什么呢?
                Demo中使用大象和冰箱类的功能。
                
        代码体现:
          

 class 大象 {
                public static void in() {
                    System.out.println("装进大象");
                }
            }
            
            class 冰箱 {
                public static void open() {
                    System.out.println("打开冰箱门");
                }
                
                public static void close() {
                    System.out.println("关闭冰箱门");
                }
            }
            
            class Demo {
                public static void main(String[] args) {
                    冰箱调用开门
                    大象调用进去
                    冰箱调用关门
                }
            }


            
4:开发,设计,特征
面向对象开发
    就是不断的创建对象,使用对象,指挥对象做事情。
    
面向对象设计
    其实就是在管理和维护对象之间的关系。

面向对象特征
    封装(encapsulation)
    继承(inheritance)
    多态(polymorphism)

成员变量和局部变量的区别

        A:在类中的位置不同

            成员变量:在类中方法外

            局部变量:在方法定义中或者方法声明上

        B:在内存中的位置不同

            成员变量:在堆内存(有初始化的值)

            局部变量:在栈内存(没有初始化的值)

        C:生命周期不同

            成员变量:随着对象的创建而存在,随着对象的消失而消失

            局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

        D:初始化值不同

            成员变量:有默认初始化值

            局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。

        注意事项:

            局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

class Varialbe {
	//成员变量
	//int num = 10;
	int num; //0
	
	public void show() {
		//int num2 = 20; //局部变量
		//可能尚未初始化变量num2
		//int num2; //没有默认值
		int num2 = 20;
		System.out.println(num2);
		
		//int num = 100;
		System.out.println(num);
	}
}


class VariableDemo {
	public static void main(String[] args) {
		Varialbe v = new Varialbe();
		
		System.out.println(v.num); //访问成员变量
		
		v.show();	
			
	}
}

猜你喜欢

转载自blog.csdn.net/qq_36326116/article/details/89313677