• 什么是类?
  • 怎样定义一个类?
  • 什么是对象,类和对象之间是什么关系,怎样创建一个对象?
  • 对象引用和对象在内存中是如何分配的?

  • 什么是类?

1. 类是具有相同的属性和功能的事物的抽象的集合,在面向对象程序设计中,人们把一类事物的静态属性和动态可以执行的操作组合在一起就得到类这个概念。

   2. 类是个抽象的概念,用来模拟一类事物,一旦定义了一个类,这个类就永远存在。
    比如:人,人有男人和女人,他们都有身高,体重等相同的属性,他们都具有走路,吃饭,工作等这些相同的,可动态执行的操作,所以可以定义“人类”这样一个类来包含他们相同的属性和功能。
 

  • 怎样定义一个类?

在Java中,使用Class这个关键字来定义一个类,如下:定义一个Person类

 1 /**
 2     @author   zst
 3     @version  1.0
 4 */
 5 public class Person{
 6     private String name;
 7     private int age;
 8
 9     public void work(){
10
11     }
12 }

说明:  1. 类名称首字母要大写,如果要定义的类名称由多个单词组成,则每个单词的首字母都要大写
      2. 如果是对外公开的方法需要用“public”关键字修饰
在上面Person类中:
1. name,age 称为类数据成员,或字段
2. work() 称为类的成员函数,或方法
 

  • 什么是对象,类和对象之间是什么关系,怎样创建一个对象?
    1. 对象是类的一个个体,是具体的,实实在在存在的事物,它有自己的生命周期,由类可以创建出对象,对象也会消亡。
    2. 类一旦被建立后,就可以用这个类创建出任意个对象,然后去操作这些对象,类是抽象的,对象是具体的。
    3. 对象也叫实例,是一个真实的实体。
 
   关系:  1. 如果把对象比作是实实在在存在一辆汽车,那么类就是这辆汽车的设计图纸,当然通过设计图纸(类)还可以制造第二辆,第三辆这样的汽车(对象)。
         2. 如上,通过Person类可以创建出一个叫“小明”的对象,也可以创建出另一个叫“阿黄”的对象。
 
   创建一个对象的过程也叫类的实例化,使用new关键字来创建对象。
 1 Person xiaoMing = new Perosn(); 

如上就是创建一个对象的过程:执行了两步操作:
   1.Person xiaoMing:声明了一个叫xiaoMing的Person类的对象引用。
      2. newPerosn():创建一个Person对象,此时xiaoMing指向创建出来的对象,也经常把xiaoMing称为对象名。
 

  • 对象引用和对象在内存中是如何分配的?
 1 /**
 2     @author   zst
 3     @version  1.0
 4 */
 5 class A
 6 {
 7     int i = 10;
 8     int j = 10;
 9     public static int k = 20;
10
11     public void f()
12     {
13         System.out.println("我是A类对象的方法");
14     }
15 }
16 public class ObjectMemoryAllocation
17 {
18     public static void main(String[] args)
19     {
20         A aa = new A();
21         aa.f();
22
23     }
24 }

  在上面代码中:A aa =new A(); 这行代码是创建对象的过程(类的实例化)。  
     A aa :声明对象的引用变量,这个变量是在栈(stack)内存中分配的,它存储着一个内存地址,该地址指向执行new A()后在堆中分配的一块内存。
  new A(): 创建一个对象,该对象是在堆(heap)内存中动态分配的。

    如下图:
     注:
      1. new出来的对象都是在堆(heap)中分配的
      2. 局部变量(如对象引用变量)都是在栈(stack)中分配
       3. 静态变量(被static修饰的变量)和字符串常量存储在数据段(Data Segtment)中
        4. 代码段(Code Segment)中存放代码

来自为知笔记(Wiz)

转载于:https://www.cnblogs.com/sanfeng4476/p/6092930.html

Java:类与对象概念相关推荐

  1. java类和对象程序_Java类与对象程序设计基础

    Java类与对象程序设计基础 一.实验目的: 通过编制一个独立应用程序,使得学生掌握Java的系统所提供类的引用方法:通过编制一个完整的应用程序,使得学生对Java的应用程序的基本构成和基本算法熟练掌 ...

  2. 【Java类和对象】

    Java类和对象 在Java简介中就有介绍到,Java是一门面向对象的编程语言,在面向对象的编程语言中,肯定离不开对象这个概念,而对象则是类的实例,所以也肯定离不开类这个概念.简单的来说就是,在Jav ...

  3. java类和对象在内存的表现形式

    Java内存分配与管理是Java的核心技术之一,不管学习任何一门语言,我们要知其然,知其所以然,本文主要分析下Java中类和对象在内存中的表现形式,方便我们对其有更深了解.一般Java在内存分配时会涉 ...

  4. 实验2 Java类和对象的设计

    实验题目:Java类和对象的设计 一.上机目的和要求 理解面向对象的编程思想.类与对象的概念: 加深理解封装性.继承性和多态性: 掌握this.super.final.static等关键字的使用: 掌 ...

  5. java类与对象实验_JAVA类与对象实验报告

    <JAVA类与对象实验报告>由会员分享,可在线阅读,更多相关<JAVA类与对象实验报告(6页珍藏版)>请在人人文库网上搜索. 1.面向对象程序设计实验报告实验三.类与对象(1) ...

  6. 杨校老师课堂之Java类与对象、封装、构造方法

    杨校老师课堂之Java类与对象.封装.构造方法 本篇文章内容如下: 面向对象 类与对象 三大特征--封装 构造方法 教学目标 能够理解面向对象的思想 能够明确类与对象关系 能够掌握类的定义格式 能够掌 ...

  7. 从Java类到对象的创建过程都做了些啥?内存中的对象是啥样的?

    转载自   从Java类到对象的创建过程都做了些啥?内存中的对象是啥样的? 先回顾一下Java程序执行的过程: Java程序执行时,第一步系统创建虚拟机进程,然后虚拟器用类加载器Class Loade ...

  8. java类与对象 演练 查找并修改姓名

    java类与对象 演练 查找并修改姓名 视频 https://www.ixigua.com/i6870489659168784903/ 思路 先定义一个类 类中有一个名字数组 提前给这个数组一些默认值 ...

  9. java类与对象 演练 客户姓名添加与查看

    java类与对象 演练 客户姓名添加与查看 视频 https://www.ixigua.com/6870483106223096327?logTag=_YUmIb2rn9-6JpoNipj9r 类的定 ...

  10. 最大公约数与最小公倍数( 初学Java 类与对象 )

    最大公约数与最小公倍数( java 类与对象的运用 ) Problem Description 输入两个正整数,求它们的最大公约数与最小公倍数. Input 输入两个正整数,两个整数之间用空格分开. ...

最新文章

  1. Java类Demo中存在_Java中的数据类型转换
  2. 北大网络教育计算机作业,北大网络教育(计算机专业)网络基础作业答案.doc
  3. 美团公开外卖配送中的“预估到达时间”算法规则
  4. 利用Jenkins的Pipeline实现集群自动化部署SpringBoot项目
  5. 皮一皮:越是拥有越不会炫耀...
  6. bzoj3223 splay
  7. vim 高级使用技巧第二篇
  8. 测试点3错的来:1028 人口普查 (20分)(解题报告)
  9. mybatis添加方法可以传map吗_Mybatis中传递多个参数的4种方法总结
  10. Lambda表达式的前世今生
  11. mysql heartbeat 慢_Mysql 慢日志优化分析方法
  12. 关于权限的数据库设计
  13. WPF实现特殊统计图
  14. keras(X_train, X_test, y_train, y_test)
  15. finereport9.0破解版|finereport10.0破解并发数|finereport授权注册|FineBI5.0破解lic
  16. web前端设计--二级菜单栏
  17. 站长必备-伪原创原创度检测软件v1.3 (支持百度/谷歌/360/搜狗/神马/微信)
  18. 关于NB-IoT,这四十个问题经典回答
  19. 【Opencontrail】opencontrail对接k8s
  20. c语言date用法,c语言getdate()和gettime()的用法

热门文章

  1. json标准格式举例_JSON格式简介及一些对应函数
  2. 并发 锁和隔离等级的关系
  3. java并发编程(12)-- 线程池 实际⽣产使⽤哪⼀个线程池 怎么设置
  4. 如何掌握mysql的查询语句_如何分析mysql的查询语句
  5. springsecurity安全登录框架
  6. 计算机网络技术基础试卷2,《计算机网络基础考试2》试题与答案
  7. c++获取ctrl+v内容_处理文档时,快捷键「Ctrl+E」的 8 大妙用
  8. linux新建虚拟机到图形化界面
  9. 十七、字符串类型String(一)
  10. Happy Week