面向对象基础

Java复习之路-面向对象基础-day06

面向对象

  1. 面向对象思想概述
  • A:面向过程思想概述
    • 第一步
    • 第二步
  • B:面向对象思想概述
    • 找对象(第一步,第二步)
  • C:举例
    • 买煎饼果子
    • 洗衣服
  • D:面向对象思想特点
    • a:是一种更符合我们思想习惯的思想
    • b:可以将复杂的事情简单化
    • c:将我们从执行者变成了指挥者
      • 角色发生了转换
  • E:面向对象开发
    • 就是不断的创建对象,使用对象,指挥对象做事情。
  • F:面向对象设计
    • 其实就是在管理和维护对象之间的关系。
  • G:面向对象特征
    • 封装(encapsulation)
    • 继承(inheritance)
    • 多态(polymorphism)
  1. 面向对象类与对象概述
  • A:我们学习编程是为了什么
    • 为了把我们日常生活中实物用学习语言描述出来
  • B:我们如何描述现实世界事物
    • 属性 就是该事物的描述信息(事物身上的名词)
    • 行为 就是该事物能够做什么(事物身上的动词)
  • C:Java中最基本的单位是类,Java中用class描述事物也是如此
    • 成员变量 就是事物的属性
    • 成员方法 就是事物的行为
  • D:定义类其实就是定义类的成员(成员变量和成员方法)
    • a:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
    • b:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
  • E:类和对象的概念
    • a:类:是一组相关的属性和行为的集合
    • b:对象:是该类事物的具体体现
    • c:举例:
      • 类 学生
      • 对象 具体的某个学生就是一个对象
  • 举例:
    学生类
class Student {
    String name;
    int age;
    String gender;
    
    public void study(){
        System.out.println("学生学习");
    }
    public void sleep(){
        System.out.println("学生睡觉");
    }
}
  1. 一个对象的内存图
    5753f8d543c4c27b4df11e6647f1d120.png
  2. 两个对象的内存图
    bd00b5b844116fd7ffdaf8e5b6366b3b.png
  3. 三个引用两个对象的内存图
    98dcaf80dcaadf14de09bb116c677528.png
  4. 面向对象(成员变量和局部变量的区别)(掌握)
  • A:在类中的位置不同
    • 成员变量:在类中方法外
    • 局部变量:在方法定义中或者方法声明上
class Person {
    String name; // 成员变量
    
    public void speak(int x) { // x是局部变量,在方法声明上
        int nums = 10; // 局部变量,在方法定义中
    }
}
  • B:在内存中的位置不同

    • 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    • 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
  • C:生命周期不同

    • 成员变量:随着对象的创建而存在,随着对象的消失而消失
    • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
  • D:初始化值不同

    • 成员变量:有默认初始化值
    • 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
  • 注意事项:

    • 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。举例如下:
class Person {
    String name; // 成员变量
    int num;
    
    public void speak(int x) { // x是局部变量,在方法声明上
        int num = 10; // 若没有这句话,则输出为0,若有,则输出为10。原理:成员变量存储在堆内存,局部变量存储在栈内存中。
        System.out.println(name);
        System.out.println(num);
    }
}
* 基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
* 引用数据类型变量包括哪些:数组,类,接口,枚举
  1. 方法的形式参数是类名的时候如何调用
  • A:方法的参数是类名public void print(Student s){}//print(new Student());
    • 如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
class Demo1_Student {
    public stativ void main(String[] args) {
        Student s = new Student();
        print(s); 
    }
    
    public static void print(Student stu) { // 形参是类名
        stu.name = "zhangsan";
        stu.age = 23;
        stu.speak();
    }
}

class Student {
    String name;
    int age;
    
    public void speak() {
        System.out.println(name + "..." + age);
    }
}
  1. 匿名对象
  • A:什么是匿名对象
    • 没有名字的对象
  • B:匿名对象应用场景
    • a:调用方法,仅仅只调用一次的时候。
      • 那么,这种匿名调用有什么好处吗?
        • 节省代码
      • 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
    • b:匿名对象可以作为实际参数传递
class Demo3_Car {
    public static void main(String[] args) {
        /*
        Car c1 = new Car();
        c1.color = "red";
        c1.num = 4;
        c1.run();
        
        Car c1 = new Car();
        c1.color = "red";
        c1.num = 4;
        c1.run();
        */
        method(new Car()); // 匿名对象可以当作参数传递,减少代码量。
        
    }
    public static void method(Car cc) {
        cc.color = "red";
        cc.num = 4;
        cc.run();
    }
}
  • C 形式:
new Car().run(); // 匿名对象调用方法
  1. 封装
  • A:封装概述

    • 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  • B:封装好处

    • 隐藏实现细节,提供公共的访问方式
    • 提高了代码的复用性
    • 提高安全性。
  • C:封装原则

    • 将不需要对外提供的内容都隐藏起来。
    • 把属性隐藏,提供公共方法对其访问。
  1. 封装之private关键字的概述和特点
  • A:人类赋值年龄的问题
  • B:private关键字特点
    • a:是一个权限修饰符
    • b:可以修饰成员变量和成员方法
    • c:被其修饰的成员只能在本类中被访问
  • C:案例演示
    • 封装和private的应用:
    • A:把成员变量用private修饰
    • B:提供对应的getXxx()和setXxx()方法
    • private仅仅是封装的一种体现形式,不能说封装就是私有
      代码:
      6a6d14b7624eb7838820b7f5b655cef8.png
  1. this关键字的引用
  • A:this关键字特点

    • 代表当前对象的引用
  • B:案例演示

    • this的应用场景
    • 用来区分成员变量和局部变量重名
  • 注:本文整理自传智播客视频及其提供文档,手码,若有错误,希望大家指出(轻喷),共同学习。目的是便于个人复习,后来考虑到如果有其他同学也想复习,也想跟大家分享。不过毕竟本文整理自其他资料,若有侵权,请私信联系我,删。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值