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


  • 什么是类?

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. 10.13 新版本go on~

    上午1.5 终审 and 排期 合同管理那边又是切换选项时各种联动,我第一想法是 好麻烦,不想做这个...第二想法才是给我做吧 锻炼锻炼我 然后 分任务的时候 分给我了,,哈哈 开心 虽然我没想躲 但 ...

  2. SpringMVC不能引入静态资源

    SpringMVC不能引入静态资源 问题:部署项目后程序加载或用浏览器访问时出现类似的警告, 2011-01-19 10:52:51,646 WARN [org.springframework.web ...

  3. etcd-v2第一集

    网站:https://github.com/coreos/etcd 一些观点:https://yq.aliyun.com/articles/11035 1.etcd是键值存储仓库,配置共享和服务发现2 ...

  4. C++ 提取网页内容系列之四正则

    标 题: C++ 提取网页内容系列之四作 者: itdef链 接: http://www.cnblogs.com/itdef/p/4173833.html 欢迎转帖 请保持文本完整并注明出处 将网页内 ...

  5. 《C#从现象到本质》读书笔记(八)第10章反射

    <C#从现象到本质>读书笔记(八)第10章反射 个人感觉,反射其实就是为了能够在程序运行期间动态的加载一个外部的DLL集合,然后通过某种办法找到这个DLL集合中的某个空间下的某个类的某个成 ...

  6. httpd安装与配置(编译安装)

    httpd简介 httpd是Apache超文本传输协议(HTTP)服务器的主程序.被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池. 通常,httpd不应该被直接调用,而应该在类 ...

  7. 【轻松前端之旅】HTML的块元素、行内元素和空元素

    块(block)元素 显示成一块,前后有换行.块元素常用于web页面的主要构造模块.例如:<div>,<p>,<h1>~<h6>,<blockqu ...

  8. Effective C++ 笔记:条款 30 inline

    30 : Understand the ins and outs of inlining 1 inline申请书 1.1 类内部实现函数包含隐藏的inline申请 class Human { publ ...

  9. 达里奥:典型的去杠杆化过程是怎么进行的zz

    猛人RayDalio的“三部曲”之三:关于去杠杆化的深入理解 作者系统地阐述了去杆杠化过程并深入探讨去杆杠化的运作机理,对我们理解当前全球乃至中国.即将或者已经面临的去杠杆化过程,应当能够带来一些帮助 ...

  10. 《MarkMark学习笔记学习笔记》html学习笔记

    iframe里有一个srcdoc属性,很有用! window.location.href=document.referrer//可以实现返回上一级页面并刷新 HTML5权威指南©®,比较老的书了,有些 ...