吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2125|回复: 9
收起左侧

[Java 转载] 【笔记】小小白的java从0开始,第四节

  [复制链接]
战之都 发表于 2020-5-29 10:21

面向对象

面向对象概述

“面向对象”(英语:Object Oriented,简称OO)是一种以事物为中心的编程思想。

面向对象程序设计(英语:Object-oriented programming,缩写:OOP),是一种程序开发的方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

面向对象是相对于面向过程而言的(c则是一个典型的面向过程的语言),站在面向对象的角度去看问题,你则是对象的动作指挥者。如果站在面向过程的角度去看问题,你则是动作的执行者。
面向对象与面向过程
举例解释比如:

面向过程:

买电脑
查资料
电脑城砍价
被坑
痛苦归来

面向对象

买电脑
找对象。懂电脑的人(小明)
小明.砍价
小明.检测电脑
电脑成功购买

PS:这个对象不是脱单的那个对象

区别

面向过程:

强调的是功能行为,面向过程”是一种以过程为中心的编程思想。“面向过程”他们不支持丰富的“面向对象”特性(比如继承、多态),就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程在这一系列工作的执行中,强调的是工作的执行

面向对象:

强调的是具备某种功能的对象
其实以后开发程序就是找对象和创建对象(没有对象创建对象)的过程

开发就是一个寻找对象,使用对象的过程,没有对象就创建对象
设计就是维护对象与对象之间的关系

使用Java描述事物

我们写程序就是为了方便日常生活,其实就是将生活中的事物通过编程语言使用程序描述,我们使用Java语言描述生活中的事物

案例:

通过Java语言定义一个汽车类,并生产出汽车,有颜色,轮胎个数,有跑的功能。
分析:如何描述现实世界中的事物?其实是描述该事物的属性和行为,汽车具有颜色和轮胎数的属性,具备跑的行为。

如何使用Java语言进行转换?

根据对应关系:
属性:类中的成员变量
行为:类中的成员函数(方法)
那么定义Java类就是定义一个类的成员。汽车类具备的成员是:颜色,轮胎数,运行方法。
Car类定义流程:

该类是用来描述汽车
  属性:
    轮子
    颜色
  行为:
    跑

    public class Car{
        //描述轮子
        public int wheel;
        //描述颜色
        public String color;

        //行为:会跑,一个什么颜色,几个轮子的车在跑
        public void run() {
            System.out.println("一辆“+wheel+"个轮子”+color+”色的五菱宏光在马路上嘟嘟嘟……);
        }
    }

创建对象

创建Car对象

1.使用new关键词,就像new数组一样
2.需要给型的汽车起一个名字,car
3.变量都是有类型的,car属于什么类型,属于Car类型,叫做类类型
4.Car car=new Car();

图纸画好了,类定义成功了。如何根据图纸生产汽车,在Java中如何根据来生产一个对象

Java中生产汽车比较简单,通过一个关键字”new”, 通过 new  Car(); 就在内存中产生了一个实体,汽车对象就生产出来了。

汽车对象生产出来后,还没有名字,为了方便使用,需要起一个名字。就用小写的C 来表示新车的名字。

Java中的变量都需要有类型。那么c 是什么类型呢?c 是Car类型,所以c也叫做类类型变量

//测试汽车类

public class CarTest {
    public static void main (String[] args) {
        //要让汽车跑起来,应该是一个实实在在的汽车
        //所以需要创建汽车类的对象
        //怎么创建对象?     使用new关键字
        //new Car(); 就是创建对象,为了方便使用该对象,
        //  给该对象起一个名字与变量一样
        //Java作为一门强类型的编程语言,必须指定变量的数据类型,
        //类型就是类名

        car = new Car();
        //调用汽车跑的方法
        //如何使用成员? 通过对象名 (car) ,的方式调用成员
        //给车的颜色和轮子赋值
        car.wheel = 4;
        car. color = "绿";
        car.run();
    }
}

部变量和成员变量

局部变量和成员(全局)变量的区别

    0.定义位置
        局部变量:声明在局部位置,方法或者语句(for循环等语句)上
        成员变量:定义在类中,
    1.存储位置
        局部变量:局部变量在栈内存存放
        成员变量:存储在堆内存
    2.默认值
        局部变量:没有默认值,必须初始化
        成员变量:有默认值,默认值与数据类型有关
    3.生命周期
        局部变量:根据语句的结束自动释放
        成员变量:随着对象的存在而存在,随着对象的消失而消失
    4.作用范围
        局部变量:作用在方法或语句中
        成员变量:作用在整个类中
注意:如果成员变量和局部变量名相同,遵循就近原则,使用局部的

`public class VariableDemo {
    //全局变量
    public int i;
    public void show() {
        //局部变量
        int i = 10;
        System.out.println(i);
    }
    public static void main(String[] args) {
        //创建对象,可以在任意位置创建,只要语法不错
        VariableDemo vd = new VariableDemo();
        //调用方法
        vd.show();
    }
}`

匿名对象

概述:匿名对象就是没有名字的对象

应用:
0.调用且只调用一次方法时使用
1.可以将匿名对象当做方法的实际参数进行传递
好处:匿名对象会直接变成垃圾回收,节省内存空间
注意:如果该对象要频繁使用,就给对象起名字
案例:将汽车送到修理厂进行改装

汽车类

    public class SportCar{
        //描述轮子
        public int wheel;
        //描述颜色
        public String color;
        //速度
        public double speed;

        //行为:跑
        public void run() {
            System.out.println("一辆"+color+"色"+wheel+"个轮子的红标思域在以"+speed+"迈狂飙");
        }
    }

修理厂类

public class repairFactory{
    public String name;//名字
    public String address;//位置

    //改装,需要送进来一辆车,需要定义形式参数
    public void repair(SportCar sportCar){
        //将传进来的车修改
        sportCar.color = "荧光紫";
        sportCar.wheel = 4;
        sportCar.speed = 120;
        System.out.println("欢迎你下次再来"+address+name);
    }
}

测试类

//测试类
    public class SportTest{
        public static void main(String[] args){
            //将车的对象创建出来
            SportCar sc = new SportCar();
            //赋值
            sc.color = "白";
            sc.speed = 60;
            sc.wheeel = 8;
            //将修理厂创建出来
            RepairFactory repairFactory = new RepairFactory();
            repairFactory.address = "中国钓鱼岛";
            repairFactory.name = "中国钓鱼岛国际汽修厂";
            //调用改装之前跑的方法
            sc.run();
            //调用修理厂改装的方法
            repairFactory.repair(sc);
            //再调用改装后跑的方法
            sc.run();

            /*
            下面是另一种简洁而优雅的写法
            // ------------------
            //匿名对象,要让他跑
            new SportCar().run();
            RepairFactory repairFactory = new RepairFactory();
            repairFactory.address = "中国钓鱼岛";
            repairFactory.name = "中国钓鱼岛国际汽修厂";
            //在创建对象时给对象赋值
            repairFactory.repair(new sportCar());
            */
        }
    }

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
gulu2840 + 1 我很赞同!
泳诗 + 1 我很赞同!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 战之都 发表于 2020-5-29 10:56
那年夏天52 发表于 2020-5-29 10:37
面对对象编程,可是我还没找到对象呀,目前只能面对基友

面对着基友面向对象编程
那年夏天52 发表于 2020-5-29 10:37
面对对象编程,可是我还没找到对象呀,目前只能面对基友
bie.ren 发表于 2020-5-29 11:40
靓仔小黄 发表于 2020-5-29 20:36
那年夏天52 发表于 2020-5-29 10:37
面对对象编程,可是我还没找到对象呀,目前只能面对基友

可以自己new一个
那年夏天52 发表于 2020-5-29 20:49

我new三个,早中午各一位
 楼主| 战之都 发表于 2020-5-30 08:49
那年夏天52 发表于 2020-5-29 20:49
我new三个,早中午各一位

就怕你一个也new不出来
那年夏天52 发表于 2020-5-30 12:17
战之都 发表于 2020-5-30 08:49
就怕你一个也new不出来

我去,太扎心了老铁。
靓仔小黄 发表于 2020-5-30 15:52
那年夏天52 发表于 2020-5-29 20:49
我new三个,早中午各一位

注意身体

点评

我保温杯有枸杞,问题不大  发表于 2020-5-30 19:17
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 03:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表