一、类和对象的相关概念

1、面向对象和面向过程的理解

面向对象和面向过程都属于解决问题的思考方式。
面向过程:以执行者的角度思考问题,侧重于“怎么做”,比较适合解决小型项目
面向对象:以指挥者的角度思考问题,侧重于“谁来做”,比较适合解决中大型项目
面向对象和面向过程不能分割开来,二者相辅相成,缺一不可!
宏观上通过面向对象思考,微观上通过面向过程思考!

2、类和对象的概念、关系、区别

(1)概念

对象:客观世界中所有可以被描述的事物都称为对象(万物皆对象)。
类:具有相同属性和方法的一组对象的集合称为类

(2)关系

对象:通过类创建出来的具体的实例
类:属于对象所属的类型

(3)区别

对象:具体的、实际存在的
类:抽象的、模板性质的

3、如何区分开每一个对象?

通过对象的特征(属性和方法)

属性:
  对象的外观特征
  比如:姓名、年龄、颜色、价格等
方法:
  对象的行为特征或功能
  比如:能装水、吃、喝、能计算

二、类和对象的创建和使用★

1、类的创建

步骤:
  ①通过class关键字定义
  ②编写属性(外观特征)
  ③编写方法(行为功能)
  示例:
    [public] class 类名{
      String name;//属性
      int age;//属性
      public void show(){//方法
      }
    }

2、对象的创建

步骤:
  ①创建对象
    类型 对象名 = new 类型();
  ②使用对象
    为对象的属性赋值
      对象名.属性 = 值;
      System.out.println(对象名.属性);
    调用对象的方法
      对象名.方法();

注意:
  ①不同对象是独立的,他们的属性值互不影响,其中一个更改,不影响另外的对象
  ②对象的属性可以不用赋值,有默认值

int——0
double——0.0
char——\u0000
boolean——false
引用类型——null

3、基本类型与引用类型比较  

  使用步骤 称呼 存储位置 访问方式
基本类型 int i = 100; 变量名和变量值 直接访问i即可
引用类型

Student s = new Student();

s.name="xiaoming"

变量名—>对象名或引用名

变量值—>对象

对象名存在栈

值存在对

一般访问s的属性,如s.name

三、类和对象的内存分配★

1、类仅加载一次★

每次创建对象,都需要先判断类是否已经加载过,如果已经加载过,则不需要再次加载;如果没有加载过,则需要通过类加载器将字节码文件加载到方法区中;
然后在堆中创建对象

2、存储★

栈中存储的是对象的引用(对象名)和局部变量
堆中存的是对象和对象的属性
方法区存的是类的结构信息

3、不同对象是独立的,互不影响

【补充】内存分配图

最新文章

  1. Click模块化路由器
  2. ORACLE配置tnsnames.ora文件实例
  3. sql,插入最大值加1
  4. node.js 使用 UglifyJS2 高效率压缩 javascript 文件
  5. URL编码方法比较
  6. Maven实战(六)--- dependencies与dependencyManagement的区别
  7. MEF(Managed Extensibility Framework)依赖注入学习
  8. 简单http笔记
  9. C# 清除当前窗体中TextBox控件中的内容
  10. 关于修改动态库DLL的问题
  11. JVM调优总结 + jstat 分析(转)
  12. Apache+php+mysql+phpadmin搭建
  13. C++ Primer第九章课后编程问题
  14. Python实现删除目录下相同文件
  15. Flask之基于route装饰器的路由系统(源码阅读解析)
  16. html 微信video放大后无法返回问题
  17. Linux文件属性描述
  18. jpa随笔
  19. AngularJS transclude 理解及例子
  20. CentOS7 从管理员组中 新增/删除用户

热门文章

  1. Dynamics 365 CRM Free up storage 清理Dynamics 365 CRM的空间
  2. 回顾ThreadLocal
  3. Spring Web常见面试问题
  4. bootstrap 模态框事件
  5. 关于set_input_delay的用法分析
  6. opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件
  7. [蓝桥杯]PREV-10.历届试题_幸运数
  8. 在Docker中监控Java应用程序的5个方法
  9. 廖雪峰Java7处理日期和时间-4最佳实践-最佳实践
  10. [NOI2011]智能车比赛 (计算几何 DAG)