面向对象(思想引入和面向过程思想概述)

一、面向对象思想: 面向对象是基于面向过程的编程思想。
      

        面向过程:强调的是每一个功能的步骤
        面向对象:强调的是对象,然后由对象去调用功能
 
二、 面向对象的思想特点
                A:是一种更符合我们思想习惯的思想
                B:可以将复杂的事情简单化
               C:将我们从执行者变成了指挥者
  
         举例:
                买电脑:
                           面向过程:你去了解电脑--了解你自己的需求--找对应的参数信息--去商店买电脑--讨价还价--买回电脑
                           面向对象:你要买电脑 -- 让新哥帮你去买 -- 新哥给你回来了
               洗衣服
                          面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来
                          面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来
               吃饭:
                           面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃
                           面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃
      
            把大象装进冰箱
                         面向过程:动作有哪些呢?
                                                     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) {
     冰箱调用开门
      大象调用进去
      冰箱调用关门
    }
   }

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

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

四、  类与对象

       现实世界中是如何描述一个事物的呢?
          举例:学生
                     姓名,年龄,性别...
                     学习,吃饭,睡觉
   
                   属性:该事物的描述信息
                  行为:该事物能够做什么
 
我们学习编程语言,是为了模拟现实世界的事物的。
而我们学习的编程语言Java中最基本的单位是:类。
所以,我们就应该把事物通过类来体现出来:
由此,我们就得到了现实世界事物和类的对应关系:

                         事物:                                 类: 
                              属性                                      成员变量
                              行为                                      成员方法
 
 
类:是一组相关的属性和行为的集合。是一个抽象的概念。
对象:是该类事物的具体表现形式。具体存在的个体。

举例:
            学生:类
            班长:对象

 

案例:我们来完成一个学生类的定义。
 
 学生事物:
       属性:姓名,年龄,地址...
       行为:学习,吃饭,睡觉...
  
 把事物要转换为对应的类:
 
       学生类:
              成员变量:姓名,年龄,地址...
              成员方法:学习,吃饭,睡觉...
  
       成员变量:和以前变量的定义是一样的格式,但是位置不同,在类中方法外
       成员方法:和以前的方法定义是一样的格式,但是今天把static先去掉。
 
 首先我们应该定义一个类,然后完成类的成员。

*/
//这是我的学生类
class Student {
	//定义变量
	//姓名
	String name;
	//年龄
	int age;
	//地址
	String address;
	
	//定义方法
	//学习的方法
	public void study() {
		System.out.println("学生爱学习");
	}
	
	//吃饭的方法
	public void eat() {
		System.out.println("学习饿了,要吃饭");
	}
	
	//睡觉的方法
	public void sleep() {
		System.out.println("学习累了,要睡觉");
	}
}


/*
             在一个java文件中写两个类:一个基本的类,一个测试类。
                       注意:文件名称和测试类名称一致。
 
                 如何使用呢?
                       创建对象使用。
  
                如何创建对象呢?
                      格式:类名 对象名 = new 类名();
  
               如何使用成员变量呢?
                     对象名.变量名
                如何使用成员方法呢?
                     对象名.方法名(...)
*/

//这是学生测试类
class StudentDemo {
	public static void main(String[] args) {
		//类名 对象名 = new 类名();
		Student s = new Student();
		
		//输出成员变量值
		//System.out.println(s.name);
		//System.out.println(s.age);
		//System.out.println(s.address);
		//改进写法
		System.out.println(s.name+"---"+s.age+"---"+s.address);
		
		
		//给成员变量赋值
		s.name = "林青霞";
		s.age = 27;
		s.address = "北京";
		//赋值后的输出
		System.out.println(s.name+"---"+s.age+"---"+s.address);
		
		//调用方法
		s.study();
		s.eat();
		s.sleep();
	}
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值