Java面向对象类与对象整理

第一章           面向对象:

1.1         什么是面向过程:

遇到某件事的时候,思考 “我该怎么做”然后一步一步实现的过程

1.2         什么是面向对象:

遇到某件事的时候,思考“我该让谁来做”,“谁”就是对象,他们怎么做是他们自己的事,最后一群对象结合起来做好一件事就行

1.3         面向对象举例

笔记本案例:

  1. 面向过程:

买一台组装电脑,先去网上找需要买那些零部件,然后找配置,然后在网上找零部件,价格和配置都合适,在购买完然后去电脑店去组装,然后在旁边监督,在装上系统回家

  1. 面向对象:

首先找一个对电脑硬件很了解的人,让他帮我们查看零部件和配置,然后找好零部件,购买然后让他现场监督,装上系统然后打电话给你,拿电脑回家

1.4         面向对象思维方式的好处

  1. 是一种更符合人们思考习惯的思维
  2. 面向过程更多的体现的是执行者,面向对象中更多的体现是指挥者
  3. 将复杂的问题简单化

第二章           类与对象

2.1对象在需求中的使

案例解析:

大象装进冰箱

需求:大象装进冰箱里

对象:大象、冰箱

步骤:

  1. 打开冰箱门
  2. 放进大象去
  3. 关闭冰箱门

打开、装、关闭都是冰箱的功能

大象描述:

Class 大象{

}

冰箱描述:

Class冰箱{

         Void 打开{}

         Void 存储(大象){ }

Void 关闭

}

当把具体的事物描述清楚之后,然后使用这些具体的事物,Java使用具体的事物,需要通过new 关键字来创建事物的具体实例

总结:

  1. 先按照名词提炼问题领域中的对象
  2. 对对象进行描述,明确对象中应该具备的属性和功能
  3. 通过new 的方式就可以创建该事物的具体对象
  4. 通过该对象调用它以后的方法

2.2对象在代码中的体现

分析:

事物的特点(属性):

         颜色。

         轮胎个数。

事物的(功能):

         运行。

属性就是变量,就是方法

  1. 成员属性:

在代码中的体现就是成员变量

  1. 成员功能:

在代码中的体现就是成员方法

2.3对象的内存图解

小汽车案例

package com.oracle.demo06;

 

public class Car {

 

    //成员变量

    String color;

    int number;

    //成员方法

    public void run(){

       

        System.out.println("颜色为:"+color+","+number+"个轮胎");

    }

}

 

//测试类

package com.oracle.demo06;

 

public class Test {

    public static void main(String[] args) {

       

        //创建对象

        Car c=new Car();

        //给成员变量赋值

        c.color="紫色";

        c.number=4;

        //调用成员方法

        c.run();

    }

}

 

2.4类和对象的区别

  1. 类:

是对某一类事物的事物的抽象描述

  1. 对象:

用于表示实现中该类事物的个体

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

区别一:定义的位置不同

定义在类中的变量称为成员变量

定义在方法中或者{}语句里面的变量称为局部变量

区别二:内存中的位置不同

成员变量存储在堆内存的对象中

局部变量存储在栈内存的方法中

区别三:生命周期不同

成员变量随着对象的出现而出现在堆中,随着对象方法的消失而从堆中消失

局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同

成员变量因为在堆内存中,所有默认的初始化值

局部变量没有默认的初始化值,必须手动给其赋值才可以使用

2.6基本类型和引用类型作为参数传递

基本数据类型参数传递:

package com.oracle.demo01;

 

public class Demo01 {

    public static void main(String[] args) {

       int a=1;

       method01(a);

       System.out.println(a);

      

   

    }

    //基本数据类型传递

    public static void method01(int a){

      

       a=2;

      

    }

   

}

引用数据类型参数传递:

// package com.oracle.demo01;

 

public class Person {

       String name;

       int age;

       public void speak(){

          

          

           System.out.println("我叫"+name+",今年"+age+"岁了");

       }

}

package com.oracle.demo01;

 

public class Demo01 {

    public static void main(String[] args) {

       //引用数据类型传递-- 对象

       //创建对象

       Person p=new Person();

       //给变量赋值

       p.name="欣欣";

       p.age=24;

       //调用method方法

       methd02(p);

       //调用p变量中的speak方法

       p.speak();

      

      

    }

//引用数据类型传递--对象

    public static void methd02(Person p){

       p.name="花花"  ;

       p.age=18;

      

        }

}

 

两个引用指向同一个对象,不管是哪一个引用改变了引用的所指向的对象的中的值,其他引用再次使用都是改变后的值。

原文地址:https://www.cnblogs.com/mengmengi/p/10456380.html