ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

学习笔记--初识Java面向对象

2022-02-01 18:01:11  阅读:131  来源: 互联网

标签:Java 变量 面向对象 -- 对象 初识 内存 jom


面向对象与面向过程的区别

  • 面向过程:主要关注具体过程,因果关系

    • 优点:对于业务逻辑比较简单的程序,可以得到快速开发,前期投入成本比较低
    • 缺点:由于面向过程的使用让程序间的元素“耦合度”过高,导致程序维护不便,且可拓展性差
  • 面向对象:主要关心对象【独立体】能完成哪些功能

    • 优点:耦合度低,可拓展性强,组件复用性高
    • 缺点:前期投入成本高,概念抽象,对于对象【独立体】构建不易

面向对象的三大特征

  • 封装
  • 继承
  • 多态

采用面向对象编程的过程:

  • 面向对象的分析:OOA
  • 面向对象的设计:OOD
  • 面向对象的编程:OOP

类与对象的概念

  • 什么是类?

    • 类是一概念,是由人思考抽象的结果
    • 类代表了一类事物,人对现实中个体的共同特征进行总结归纳成一个概念,称之为【类】
    • 类可以看成是创建 Java 对象的模板
  • 什么是对象?

    • 现实中实际存在的个体

类中有属性和行为

  • 属性:状态信息,自带的特征,比如【花】这个类,颜色就是属性
  • 行为:动作信息,能与环境完成交互,比如【狗】这个类,等就是行为

类的定义

语法结构:

    [修饰符列表] class 类名{
        属性;
        方法;
    }

重点:

  • 属性通常是采用一个变量的形式来完成定义
  • 行为则是通过方法来描述

例子(定义一个学生类):

  • 首先,分析一下 学生类

    • 学生有什么属性

      • 学号

      • 姓名

      • 年龄

        . . .

    • 学生有什么行为

      • 学习

      • 吃饭

      • 睡觉

        . . .

// 定义一个学生类

public class Student{

    // Student 属于类 是引用数据类型,类似 String

    // 类体 = 属性 + 方法

    /*
        学号信息不能直接通过“类”访问,所以这种成员变量又被称作:实例变量
        对象又被称作实例,实例变量就是对象变量【对象级别的变量
        不创建对象,id 变量的内存空间是不存在的
    */

    int id; // 学号

    String name;    // 姓名

    int age;    // 年龄
}

对象的创建和使用

在Java代码中

  • 什么是对象?

    new 运算符在堆内存中开辟的内存空间被称为对象

  • 什么是引用?

    引用是一个变量,只不过这个变量中保存了另一个Java对象的内存地址

Java中引用与C语言中的指针区别

  • Java中引用程序员不能直接操作堆内存
  • C中能使用指针对内存自由操作

引用的操作:

  • 读取数据:引用.变量名
  • 修改数据:引用.变量名 = 值
public class OOTest01{

    public static void main(String[] args){

        // new 是一个Java语言中的一个运算符
        // new 运算符的作用创建对象,在JVM的堆内存中开辟新的内存空间
        // 栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈
        // 堆内存:new 创建的对象在堆中存储

        Student jom = new Student();

        jom.id = 1;
        jom.name = "Jom";
        jom.age = 18;

        System.out.println(jom.name + "的学号:" + jom.id);
        System.out.println(jom.name + "的年龄:" + jom.age);
    }
}
/*
    局部变量在栈内存中存储
    成员变量中的实例变量在堆内存的java对象内部存储
    实例变量是一个对象一份,个算个的
*/

注意:上面两个文件在同一个目录

标签:Java,变量,面向对象,--,对象,初识,内存,jom
来源: https://www.cnblogs.com/shadow-/p/15859332.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有