Java面向对象、类、对象的学习(一)

Java面向对象、类、对象的学习(一)

面向过程(PO)和面向对象(OOP)

面向过程(PO): 面向过程编程:面向过程(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。面向过程是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为,注重的是过程,分析函数并一步步实现然后再调用。

简单点说面向过程就是按照解决问题的过程拆分出方法,然后按照顺序一步一步的执行方法(没有对象的调用)

**面向对象(OOP):**面向对象编程(Object Oriented Programming,面向对象程序设计)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现,面向对象是一种解决问题的思想,面向对象的计算机语言通过对目标对象的属性、行为封装最终拿到目标对象。

面向对象就先分析出解决问题需要的对象,然后定义对象的属性和方法,然后调用对象执行方法取解决问题

举例1: 洗衣机里面放有脏衣服,怎么洗干净?

面向过程:

1、执行加洗衣粉方法;

2、执行加水方法;

3、执行洗衣服方法;

4、执行清洗方法;

5、 执行烘干方法;

以上就是将解决这个问题的过程拆成一个个方法(是没有对象去调用的),通过一个个方法的执行来解决问题。

面向对象:

1、先拆分出两个对象:“洗衣机”对象和“人”对象

2、分析对象“洗衣机”的属性和方法:“洗衣服方法”、“清洗方法”、“烘干方法”

3、分析对象“人”的属性和方法:“加洗衣粉方法”、“加水方法”

4、然后调用对象

​ 人.加洗衣粉

​ 人.加水

​ 洗衣机.洗衣服

​ 洗衣机.清洗

​ 洗衣机.烘干

解决同一个问题 ,面向对象编程就是先抽象出对象,然后用对象执行方法的方式解决问题。

举例2: 随机数游戏

面向过程:

1.产生随机数

2.用户输入数字

3.比较用户输入的和产生的随机数

4.打印结果

public class GuessNumber {
    public static void main(String[] args) {

        int num = (int) (Math.random() * 100 + 1);
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数,范围 1---100 包含1和100");
        int b = 10;
        while (b > 0) {
            b--;
            int userNum = sc.nextInt();
            if (userNum > num) {
                System.out.println("猜大了,您还剩" + b + "次机会。");

            } else if (userNum < num) {
                System.out.println("猜小了,您还剩" + b + "次机会。");

            } else if (userNum == num) {
                System.out.println("恭喜你!猜对了");
                break;
            }
        }
    }
}

面向对象:

1.分析对象:电脑

2.分析方法:接收输入数字,产生随机数,比较大小

3.调用对象执行方法

  • 定义对象的属性和方法
public class GuessNumb {
    int initNum; //随机生成的数字
    int givenNum; //玩家给出的数字

    /**
     * 生成随机数(1~100)
     *
     */
    void generateNum(){
        double random = Math.random();
        initNum = (int) (random * 100);
    }

    /**
     * 接受玩家输入的数字
     */
    void acceptInput(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您猜的数字:");
        givenNum = scanner.nextInt();
    }

    /**
     * 判断玩家猜的数字是否正确
     * 并提示
     * @return 猜对了返回false; 猜错了返回true
     */
    boolean checkNum(){
        boolean b = true;
        if(givenNum == initNum){
            System.out.println("恭喜您,猜对了");
            b = false;
        }else if(givenNum > initNum){
            System.out.println("您猜的数大了,请重新猜");
        }else{
            System.out.println("您猜的数小了,请重新猜");
        }
        return b;
    }

}
  • 调用对象执行方法
public static void main(String[] args) {
    GuessNumb GuessNumb = new GuessNumb();
    //产生随机数
    GuessNumb.generateNum();
    do{
        //用户猜数
        GuessNumb.acceptInput();
    }while (GuessNumb.checkNum()); //判断猜的是否正确
}

类与对象

**类(Class):**表示一个共性的产物,是一个综合的特征

**对 象 :**是一个个性的产物,是一个个体的特征。 (类似生活中的图纸与实物的概念。)

类必须通过对象才可以使用,对象的所有操作都在类中定义。

对象是类的一个具体的实例, 是类的具体的表现

类由属性和方法组成:

  • 属性:就相当于人的一个个的特征

  • 方法:就相当于人的一个个的行为,例如:说话、吃饭、唱歌、睡觉

一个类要想真正的进行操作,则必须依靠对象

类的定义:

程序中用关键字class定义类

语法结构:

[修饰符] class 类名{

​ //属性(成员变量)

//行为(方法)

}

public class Car {
//    定义属性(成员变量)
    String brand; // 品牌
    String color;  // 颜色
    int seat; //座位数
    
//    定义方法(行为)
    void go(){
        System.out.println("在行驶...");    
    }
    
    void stop(){
        System.out.println("停下来了...");
    }
    
    void fly(){
        System.out.println("正在飞...");
    }
    
}

对象的定义:

  • 创建对象的语法:

​ 类名 对象名 = new 类名([参数]);

  ~~~java 
Car car = new Car();
  ~~~
  • 读写属性

​ 对象名.属性名

 ~~~java
car.brand = "长安";

System.out.println(car.brand + car.color + car.seat);
 ~~~
  • 调用方法

​ 对象名.方法名([参数]);

//        创建一个Car类的对象(实例化)
        Car car = new Car();
//        设置对象的属性
        car.brand = "长安";
        car.color = "白色";
        car.seat = 5;
        System.out.println(car.brand + car.color + car.seat);


//        执行对象行为(调用对象的方法)
        car.go();
        car.stop();
        car.fly();
  • 类必须编写在.java文件中;
  • 一个.java文件中,可以存在N个类,但是只能存在一个public修饰的类;
  • .java文件的文件名必须与public修饰的类名完全一直;
  • 同一个包中不能有重名的类;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值