Java学习: 第十四章 面向对象,类

第十四章 面向对象

面向对象概述

面向对象的特点封装、继承和多态

面向过程:当需要实现一个功能的时候,每一个具体步骤都需要亲力亲为,详细处理每一个细节
面向对象:当需要实现一个功能的时候,不关心具体步骤,而是找一个已经具有该功能的人帮我做
public class Deme01PrintArray {
    public static void main(String[] args) {
        int[] array = {10,20,30,40,50};

        //要求打印格式为【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));
    }
}

面向对象举例

	洗衣服:
	面向过程:脱衣服-找盆-加洗衣粉-加水-浸泡-手洗-拧干-晾晒
	面向对象:脱衣服-放入全自动洗衣机-按钮-晾晒
	面向过程强调步骤
	面向对象强调对象,这里的洗衣机就是对象

类和对象

类是一组相关属性和行为的集合

属性:

就是该事物的状态信息

行为:

就是该事物能做什么

举例:

小猫:
属性:名字、体重、年龄、颜色
行为:走、跑、叫
  • 类和对象的关系

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

类的定义

类的定义格式:定义一个类,用来模拟学生
属性: 姓名、 年龄
行为:  吃饭、  睡觉、学习

成员变量(属性):
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("学习");
    }


}

类的创建以及使用

/*
通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用
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

        //改变对象中的成员变量数值内容
        //将右侧的字符串,赋值交给stu对象中的name 成员变量
        System.out.println("------------------------------");
        stu.name = "钢铁侠";
        stu.age = 24;

        System.out.println(stu.age);//24
        System.out.println(stu.name);//钢铁侠

        //4.使用对象的成员方法 格式:
        //对象名.成员方法名()
        stu.eat();
        stu.sleep();
        stu.study();

    }
}

一个对象的内存图

两个对象使用同一个方法的内存图

两个引用指向同一个对象的内存图

使用对象类型作为方法的参数

任何数据类型都能作为方法的参数往里边传递,当一个对象作为参数传递到方法中时,实际上传递进去的是对象的地址值。![在这里插入图片描述](https://img-blog.csdnimg.cn/2020060219212868.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMDI3MTcy,size_16,color_FFFFFF,t_70)

成员方法是保存的方法区当中.class中成员方法的地址值

使用对象类型作为方法的返回值

当一个对象作为返回值传递到方法中时,返回值实际上就是传递进去的是对象的地址值。

你可能感兴趣的:(Java,学习,java)