zoukankan      html  css  js  c++  java
  • Java面向对象

    1. 面向对象思想概述

    1.1 概述

    Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。

    举例

    洗衣服:

      面向过程:把衣服脱下来-->找一个盆-->放点洗衣粉-->加点水-->浸泡10分钟-->揉一揉-->清洗衣服-->拧干-->晾 起来

      面向对象:把衣服脱下来-->打开全自动洗衣机-->扔衣服-->按钮-->晾起来

    区别:
      面向过程:强调步骤。
      面向对象:强调对象,这里的对象就是洗衣机。

    package cn.itcast.day06.demo01;
    
    import java.util.Arrays;
    
    /*
    面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。
    面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事儿。
     */
    public class Demo01PrintArray {
    
        public static void main(String[] args) {
            int[] array = { 10, 20, 30, 40, 50, 60 };
    
            // 要求打印格式为:[10, 20, 30, 40, 50]
            // 使用面向过程,每一个步骤细节都要亲力亲为。
            System.out.print("[");
            for (int i = 0; i < array.length; i++) {
                if (i == array.length - 1) { // 如果是最后一个元素
                    System.out.println(array[i] + "]");
                } else { // 如果不是最后一个元素
                    System.out.print(array[i] + ", ");
                }
            }
            System.out.println("==============");
    
            // 使用面向对象
            // 找一个JDK给我们提供好的Arrays类,
            // 其中有一个toString方法,直接就能把数组变成想要的格式的字符串
            System.out.println(Arrays.toString(array));
        }
    
    }

    1.2 类和对象

    环顾周围,你会发现很多对象,比如桌子,椅子,同学,老师等。桌椅属于办公用品,师生都是人类。那么什么是 类呢?什么是对象呢?

    什么是类

      :是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该 类事物。

    现实中,描述一类事物:  

    • 属性:就是该事物的状态信息。
    • 行为:就是该事物能够做什么。  

      举例:小猫。
      属性:名字、体重、年龄、颜色。 行为:走、跑、叫。

    什么是对象

      对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性 和行为。

      现实中,一类事物的一个实例:一只小猫。

      举例:一只小猫。
      属性:tom、5kg、2 years、yellow。 行为:溜墙根走、蹦跶的跑、喵喵叫。

    类与对象的关系 

    • 类是对一类事物的描述,是抽象的。
    • 对象是一类事物的实例,是具体的。
    • 类是对象的模板,对象是类的实体。

    2. 类的定义

    • 定义类:就是定义类的成员,包括成员变量和成员方法。
    • 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
    • 成员方法:和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面课程中再详细 讲解。
    package cn.itcast.day06.demo01;
    
    /*
    定义一个类,用来模拟“学生”事物。其中就有两个组成部分:
    
    属性(是什么):
        姓名
        年龄
    行为(能做什么):
        吃饭
        睡觉
        学习
    
    对应到Java的类当中:
    
    成员变量(属性):
        String name; // 姓名
        int age; // 年龄
    成员方法(行为):
        public void eat() {} // 吃饭
        public void sleep() {} // 睡觉
        public void study() {} // 学习
    
    注意事项:
    1. 成员变量是直接定义在类当中的,在方法外边。
    2. 成员方法不要写static关键字。
     */
    public class Student {
    
        // 成员变量
        String name; // 姓名
        int age; // 姓名
    
        // 成员方法
        public void eat() {
            System.out.println("吃饭饭!");
        }
    
        public void sleep() {
            System.out.println("睡觉觉!");
        }
    
        public void study() {
            System.out.println("学习!");
        }
    
    }
    package cn.itcast.day06.demo01;
    
    /*
    通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。
    
    1. 导包:也就是指出需要使用的类,在什么位置。
    import 包名称.类名称;
    import cn.itcast.day06.demo01.Student;
    对于和当前类属于同一个包的情况,可以省略导包语句不写。
    
    2. 创建,格式:
    类名称 对象名 = new 类名称();
    Student stu = new Student();
    
    3. 使用,分为两种情况:
    使用成员变量:对象名.成员变量名
    使用成员方法:对象名.成员方法名(参数)
    (也就是,想用谁,就用对象名点儿谁。)
    
    注意事项:
    如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样。
     */
    public class Demo02Student {
    
        public static void main(String[] args) {
            // 1. 导包。
            // 我需要使用的Student类,和我自己Demo02Student位于同一个包下,所以省略导包语句不写
    
            // 2. 创建,格式:
            // 类名称 对象名 = new 类名称();
            // 根据Student类,创建了一个名为stu的对象
            Student stu = new Student();
    
            // 3. 使用其中的成员变量,格式:
            // 对象名.成员变量名
            System.out.println(stu.name); // null
            System.out.println(stu.age); // 0
            System.out.println("=============");
    
            // 改变对象当中的成员变量数值内容
            // 将右侧的字符串,赋值交给stu对象当中的name成员变量
            stu.name = "赵丽颖";
            stu.age = 18;
            System.out.println(stu.name); // 赵丽颖
            System.out.println(stu.age); // 18
            System.out.println("=============");
    
            // 4. 使用对象的成员方法,格式:
            // 对象名.成员方法名()
            stu.eat();
            stu.sleep();
            stu.study();
        }
    
    }
    
  • 相关阅读:
    [转]SVN服务器搭建和使用(二)
    [转]SVN服务器搭建和使用(一)
    BZOJ 2049 Sdoi2008 Cave 洞穴勘测
    BZOJ 1589 Usaco2008 Dec Trick or Treat on the Farm 采集糖果
    BZOJ 2796 POI2012 Fibonacci Representation
    BZOJ 2115 Wc2011 Xor
    BZOJ 3105 CQOI2013 新Nim游戏
    BZOJ 2460 Beijing2011 元素
    BZOJ 3687 简单题
    BZOJ 1068 SCOI2008 压缩
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12189935.html
Copyright © 2011-2022 走看看