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


  • 什么是类?

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

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

  • 怎样定义一个类?

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

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

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

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

  • 对象引用和对象在内存中是如何分配的?
 
 /**
@author zst
@version 1.0
*/
class A
{
int i = 10;
int j = 10;
public static int k = 20; public void f()
{
System.out.println("我是A类对象的方法");
}
}
public class ObjectMemoryAllocation
{
public static void main(String[] args)
{
A aa = new A();
aa.f(); }
}
  在上面代码中:A aa =new A(); 这行代码是创建对象的过程(类的实例化)。  
     A aa :声明对象的引用变量,这个变量是在栈(stack)内存中分配的,它存储着一个内存地址,该地址指向执行new A()后在堆中分配的一块内存。
  new A(): 创建一个对象,该对象是在堆(heap)内存中动态分配的。
    如下图:
     注:
      1. new出来的对象都是在堆(heap)中分配的
      2. 局部变量(如对象引用变量)都是在栈(stack)中分配
       3. 静态变量(被static修饰的变量)和字符串常量存储在数据段(Data Segtment)中
        4. 代码段(Code Segment)中存放代码
 

Java:类与对象概念的更多相关文章

  1. java类和对象之间的差

    java类和对象之间的差别是一个普遍的问题,刚开始学习java当它来到与类和对象接触.今天就来总结一下它们之间的差异. 先说说class和object差异.事实上,词:object是全部class的父 ...

  2. java类和对象

    类是对象的抽象 对象是类的一个实例类 对象 = new 类();拿对象可以操作这个类里的方法 java类与对象的区别是个老生常谈的问题,刚开始学java的时候就开始接触类和对象,今天来总结一下他们之间 ...

  3. Java类和对象初始化

    类的生命周期: Java类的初始化: 本阶段负责为类变量赋正确的初始值.(类变量即静态变量) Java编译器把所有的类变量初始化语句和静态初始化器通通收集到<clinit>方法中,该方法只 ...

  4. 危险代码:如何使用Unsafe操作内存中的Java类和对象

    危险代码:如何使用Unsafe操作内存中的Java类和对象—Part1 危险代码:如何使用Unsafe操作内存中的Java类和对象—Part2 危险代码:如何使用Unsafe操作内存中的Java类和对 ...

  5. [Java初探08]__简单学习Java类和对象

    前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...

  6. JAVA类与对象(一)----基础概念理解

    面向对象基本概念 面向对象是一种新兴的程序设计方法,或者说是一种新的程序设计规范,其基本思想是使用对象.类.继承.封装.消息等基本概念来进行程序设计.它是从现实世界客观存在的事物(即对象)出发来构造软 ...

  7. java类(Class)的概念;对象的概念,声明类的属性 和方法,局部变量和成员变量,面向对象编程思维,抽象的概念

    类(Class)的概念 类是对一组具有相同特征和行为的对象的抽象描述. 理解: [1] 类包含了两个要素:特性和行为 => 同一类事物具有相同的特征和行为. [2] 类是一个群体性概念.例如:网 ...

  8. Java类和对象的概念

    Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念. Java中的类可以看做C语言中结构体的升级版.结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可 ...

  9. java类和对象的基础(笔记)

    在Java类的设计中,有时希望一个类在任何时候只能有一个实例.这时可以将该类设计为单例模式(singleton).要将一个类设计为单例模式,需要把类的构造方法的访问修饰符声明为private,然后在类 ...

随机推荐

  1. python的序列类

    1,我们常见的数据结构有哪些是序列类 序列类型的分类: ①  容器序列:list,tuple,deque(可以防止任意的类型的容器) ②  扁平序列:str,bytes,bytearray,array ...

  2. 基于python的selenium自动化测试环境搭建

    Windows下的环境搭建: 1.安装python2.7.152.cmd里敲pip install selenium3.安装firefox47.geckodriver11(并将geckodriver. ...

  3. jq获取图片并转换为base64

    html代码: <input type="file" id="file1"/> jq代码: $('#file1').change(function( ...

  4. pushf和popf

    pushf的功能是将标志寄存器的值压栈,而popf是从栈中弹出数据,送入标志寄存器中.

  5. sendmail发送邮件

    #echo 'hello!' | mail -s "hello test" 119733@qq.com

  6. linux就该这么学,第十天了

    今天老师主要让要考试的提前预习课程了,提前预习, 今天讲了,防火墙,iptable.firewall-config,firewall-cmd   防火墙和网卡的配置方法,四种,1配置文件方法,主要开启 ...

  7. 重读<<大话设计模式>>读书笔记一

    面向对象编程几大原则: 1.简单工厂模式 解读:根据不同条件,动态创建合适的对象. 目的: 解决对象创建问题 举例: 计算器根据不同情况,创建适合的对象来处理数据. 2.策略模式 解读:也是根据不同的 ...

  8. xbeePROS1发送的数据在802.15.4网络中有多大时延?

    完整的计算过程请参考Digi官方网站的文章:Sending data through an 802.15.4 network latency timing. Digi的S1模块可以跑802.15.4固 ...

  9. 连续子数组和的最大值plus

    package wodeshiyao; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStre ...

  10. CentOs7安装PHP

    来源:https://jingyan.baidu.com/article/2d5afd692df18d85a3e28e4c.html 一.下载源码 1.cd /usr/local/src/ 2. 执行 ...