Java 基础 15 面向对象概述

1.1面 向对象思想

  • 我们回想一下,前面我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。
    -在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。
  • 那么什么是面向过程开发呢?
    面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。
  • 面向过程的代表语言:C语言
  • 当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了,这时就开始思索,能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的用一个类封装在一起,这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。

1.1.1 面向过程思想与面向对象思想

  • 什么是面向过程

  面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。

例如:吃煎饼果子利用面向过程的思想:

  1. 学习摊煎饼的技术
  2. 买材料鸡蛋,油,葱等等
  3. 开始摊
  4. 收拾
  • 什么是面向对象

  面向对象思想就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对象,对我们直接提供服务)
例如:吃煎饼果子利用面向对象的思想

  1. 找会摊煎饼的大妈(创建一个摊煎饼大妈的对象)
  2. 调用其摊煎饼的技能(功能),传递进去钱参数
  3. 返回给我们一个煎饼

1.1.2面向过程特点与面向对象特点

  • 面向过程:
    强调的是过程,所有事情都需要自己完成

  • 面向对象:

  是一种更符合我们思想习惯的思想(懒人思想,我把事情自己不做,交给别人去做);
可以将复杂的事情简单化(对使用者来说简单了,对象里面还是很复杂的)
将我们从执行者变成了指挥者角色发生了转换.

1.1.2.1案例代码

package com.itheima_01;
/*
 * 面向对象思想:
 *      面向对象是基于面向过程的一种编程思想。
 * 
 *      面向过程:强调的是每一个功能的步骤
 *      面向对象:强调的是对象,然后由对象去调用功能
 * 
 * 面向对象的思想特点:
 *      A:是一种符合我们思考习惯的思想
 *      B:可以将复杂的事情简单化
 *      C:让我们从执行者变成了指挥者
 * 
 * 举例:洗衣服
 *      面向过程:把衣服脱下来--找一个盆--放水--放洗衣粉--浸泡10分钟--揉一揉--清洗衣服--拧干--晾起来
 *      面向对象:把衣服脱下来--打开全自动洗衣机--放入衣服--按钮--晾起来
 */
public class Demo {

}

1.2类与对象概述

  • 我们学习编程是为了什么
    • 为了把我们日常生活中实物用学习语言描述出来
  • 我们如何描述现实世界事物
    • 属性 就是该事物的描述信息(事物身上的名词)
    • 行为 就是该事物能够做什么(事物身上的动词)
  • Java中最基本的单位是类,Java中用class描述事物也是如此
    • 成员变量 就是事物的属性
    • 成员方法 就是事物的行为
  • 定义类其实就是定义类的成员(成员变量和成员方法)
    -成员变量

  和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
-成员方法

  和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。

  • 类和对象的概念
    • 类:是一组相关的属性和行为的集合(我们班所有的同学都具备相同的属性和行为,比如:姓名,年龄,学习,这样就把所有的学生成为学生类)

    • 对象:是该类事物的具体体现(说某个同学时,他都具备自己特有的属性和行为)

    • 举例:

  类  学生

  对象  具体的某个学生就是一个对象。
比如:车是一个类,具体的开的奔驰、宝马,就是对象。

1.2.1案例代码

package com.itheima_01;
/*
 * 我们学习编程语言,其实就是为了把现实世界的事物模拟出来,实现信息化。
 * 
 * 我们是如何表示现实世界的事物的呢?
 *      A:属性    就是事物的描述信息
 *      B:行为    就是事物能够做什么
 *      举例:
 *          学生
 * 
 * Java语言最基本的组成单位是类,所以,在后面的学习过程中,我们是通过类来体现事物的。
 * 
 * 类:是一组相关的属性和行为的集合
 * 对象:就是该类事物的具体体现
 *      举例:
 *          类       学生
 *          对象      张三
 */
public class Demo2 {

}

1.3 类与对象案例:

package com.itheima_02;
/*
 * 类的定义:类是用来描述现实世界事物的
 * 事物:
 *      属性
 *      行为
 * 类如何和事物进行对应的呢?
 *      类:
 *          成员变量
 *          成员方法
 * 
 * 成员变量:和我们学习过的变量的定义是一样的,有两个小区别。
 *      位置不同:类中,方法外
 *      初始化值:成员变量不需要给初始化值也可以使用,因为它有默认值
 * 成员方法:和我们学习过的方法的定义是一样的,有一个小区别。
 *      去掉了修饰符中的static关键字
 * 
 * 需求:定义一个学生类。
 * 
 * 学生事物:
 *      属性:姓名,年龄...
 *      行为:学习,吃饭...
 * 
 * 学生类:
 *      成员变量:姓名,年龄...
 *      成员方法:学习,吃饭...
 */
public class Student {
    //成员变量
    //姓名
    String name;
    //年龄
    int age;
    
    //成员方法
    //学习的方法
    public void study() {
        System.out.println("好好学习,天天向上");
    }
    
    //吃饭的方法
    public void eat() {
        System.out.println("学习饿了要吃饭");
    }
}

1.3.2 学生类的使用

1.3.2.1 案例代码

package com.itheima_02;
/*
 * 类的使用:
 *      使用一个类,其实就是使用该类的成员。(成员变量和成员方法)
 * 而我们要想使用一个类的成员,就必须先拥有该类的对象。
 * 那么我们如何拥有一个类的对象呢?
 *      创建对象就可以了
 * 我们如何创建对象呢?
 *      格式:
 *          类名  对象名  = new 类名();
 * 对象如何访问成员呢?
 *      成员变量:
 *          对象名.成员变量
 *      成员方法:
 *          对象名.成员方法(...)
 */
public class StudentTest {
    public static void main(String[] args) {
        //类名  对象名  = new 类名();
        Student s = new Student();
        //System.out.println("s:"+s);//com.itheima_02.Student@da6bf4
        
        //使用成员变量
        System.out.println("姓名:"+s.name);//null
        System.out.println("年龄:"+s.age);//0
        System.out.println("----------");
        
        //给成员变量赋值
        s.name = "林青霞";
        s.age = 30;
        //再次使用成员变量
        System.out.println("姓名:"+s.name);//林青霞
        System.out.println("年龄:"+s.age);//30
        System.out.println("----------");
        
        //调用成员方法
        s.study();
        s.eat();
    }
}

1.3.3手机类案例

1.3.3.1案例代码

package com.itheima_02;
/*
 * 手机类:
 *      成员变量:品牌,价格,颜色...
 *      成员方法:打电话,发短信...
 */
public class Phone {
    //品牌
    String brand;
    //价格
    int price;
    //颜色
    String color;
    
    //打电话
    public void call(String name) {
        System.out.println("给"+name+"打电话");
    }
    
    //发短信
    public void sendMessage(String name) {
        System.out.println("给"+name+"发短信");
    }
}

手机案例使用:


package com.itheima_02;
/*
 * 手机类的测试类
 */
public class PhoneTest {
    public static void main(String[] args) {
        //创建对象
        Phone p = new Phone();
        
        //输出成员变量的值
        System.out.println("品牌:"+p.brand);//null
        System.out.println("价格:"+p.price);//0
        System.out.println("颜色:"+p.color);//null
        System.out.println("------------");
        
        //给成员变量赋值
        p.brand = "锤子";
        p.price = 2999;
        p.color = "棕色";
        
        //再次输出成员变量的值
        System.out.println("品牌:"+p.brand);//锤子
        System.out.println("价格:"+p.price);//2999
        System.out.println("颜色:"+p.color);//棕色
        System.out.println("------------");
        
        //调用成员方法
        p.call("林青霞");
        p.sendMessage("林青霞");
    }
}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容