Java基础 学习笔记16

本文介绍了面向对象编程的概念,重点讲解了Python、Java和C#等语言中的类、对象、属性、方法以及封装、多态和继承等核心特性。通过实例演示了如何创建对象、访问属性和理解对象与引用的区别,以及Java中垃圾回收机制的应用。
摘要由CSDN通过智能技术生成

面向对象

python c# java 等是面向对象的语言

面向过程:关注点在实现功能的步骤上(刻板印刷术)


面向对象:关注点在实现功能需要哪些对象的参会(活字印刷术)

面向对象三大特点:

  1. 封装
  2. 多态
  3. 继承

类与对象


类(是人类大脑抽象出来的)

  1. 现实世界,事物与事物之间具有共同特征。将这些共同的状态和行为提取出来,形成了一个模板,称为类
  2. 类实际上是人类大脑思考总结的一个模板,类是一个抽象的概念
  3. 状态在程序中对应属性。属性通常用变量来表示
  4. 行为在程序中对应方法。用方法来描述行为动作
  5. 类 = 属性 + 方法
    在这里插入图片描述

类:
Java中的类

对象

  1. 实际存在的个体
  2. 对象又称为实例
  3. 通过类这个模板可以实例化n个对象。(通过类可以创造多个对象)
  4. 例如:通过Dog类可以创造出 斗牛犬 和 柯基
  5. Dog类中有一个属性 “品种”
  6. “斗牛犬” 和 “柯基” 由于都是通过Dog类创造出来,所以这两个对象都有 “品种属性”,但是值是不同的。用词这种属性被称为 实例变量

对象:
在这里插入图片描述

所有new产生的对象,都存在堆内存中


演示代码内存情况分析
在这里插入图片描述


演示代码

Student.class

package chapter3.oop01;
/*
    1. 定义类的语法格式:
        【修饰符列表】  class 类名{
         类体 = 属性 + 方法;

         //属性(实例变量),描述的是状态

         //方法, 描述的是行为动作

        }
    2. 为什么要定义类
        要通过类实例化对象。有了对象,让对象和对象之间协作起来形成系统

    3. 一个类可以实例化多个java对象

    4. 实例对象是一个对象一份,比如创建三个学生对象,每个学生对象中应该都有name变量

    5. 实例变量属于成员变量,成员变量如果没有手动赋值,系统会赋默认值
 */

public class Student {

    //属性: 姓名,年龄,性别,

    //姓名
    String name;

    //年龄
    int age;

    //性别
    boolean gender;
}

StudentTest.class

package chapter3.oop01;

public class studentTest01 {
    public static void main(String[] args) {
        //局部变量
        int i = 10;


        String name;
        //通过学生类Student实例化学生对象(通过类创造对象)
        //Student是一种数据类型名,属于引用数据类型
        //s1是变量名
        //s1也是一个局部变量(存储在JVM Stack中))
        //s1变量中保存的是:堆内存中Student对象的内存地址
        //s1有一个特殊的称呼:引用
        //什么是引用?引用的本质上是一个变量,这个变量中保存了对象的地址
        Student s1 = new Student();

        //访问对象的属性
        //访问实例变量的语法:引用.变量名
        //两种访问方式,第一种读取,第二种修改
        //读取:引用.变量名; s1.name;
        //修改: 引用.变量名 = 值; s1.name = “jack”;
        System.out.println(s1.name); //null
        System.out.println(s1.age); //0
        System.out.println(s1.gender ? "男" : "女");

        System.out.println("===================");

        //修改对象的属性
        s1.name = "张三";
        s1.age = 20;
        s1.gender = true;

        System.out.println(s1.name); //null
        System.out.println(s1.age); //0
        System.out.println(s1.gender ? "男" : "女");

        System.out.println("=====================");

        Student s2 = new Student();
        //alt + 鼠标左键 向下拖可以同时更改多个
        System.out.println(s2.name); //null
        System.out.println(s2.age); //0
        System.out.println(s2.gender ? "男" : "女");


    }
}

对象和引用的区别?

  1. 对象:在堆内存中,new出来的
  2. 引用:是一个保存了对象内存地址的变量
  3. 在java中,程序员是不能直接操作堆内存的。
  4. 需要借助引用来访问堆内存。 语法 :引用.
  5. JVM中有GC(垃圾回收机制) java是自动垃圾回收
  6. 自动垃圾回收主要针对的是堆区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值