学了好长时间的java对于java中的对象一直没有理清楚,今天楼主对java中的对象进行了整理,希望对大家有帮助。

理解和使用java中的对象,我们首先了解一下构造方法与对象的创建。  类是面向对象语言中最重要的一种数据,可以用类声明变量。面向对象语言中,用类声明的变量称为对象。

和基本数据类型不同,在声明对象后,还必须创建对象,即为声明的对象分配所拥有的的变量(确定对象所具有的属性),当时使用一个类创建一个对象时,也叫给出了这个类的一

个实例。通俗的讲,类是创建对象的模板。

1. 构造方法

构造方法是类中的一种特殊方法,用类创建对象时需要使用它的构造方法,类中的构造方法必须和它所在类的名字完全相同,且没有类型。
 
class Person
{
int age;
String name; Person(){ }
}

在Person类中Person()是一个构造函数,其实这个方法是被java隐藏的,也就是说如果类中没有编写构造方法,系统会默认该类有一个无参数,且方法体中没有语句的构造函数。如

Person类中的Person(){ },如果类里定义了一个或多个构造函数,那么java就不提供默认的构造方法了。如下:

class Person
{
int age;
String name; Person(){
age=22;
name="刘德华";
} Person(int age,Stirng name){
System.out.println("the man age is"+age+"name: "+name);
}
}

2 创建对象

(1)对象声明
一般格式为:
 
类的名字   对象的名字;
如:
Person person;
 
(2)为声明的对象分配变量
1.使用new运算符和类的默认构造方法为声明的对象分配变量,即创建对象。

class Person
{
int age;
String name;
void speak(String name){
System.out.println(name);
}
}
public class OuXiang
{
public static void main(String[] args) {
Person liudehua; //声明对象
liudehua=new Person(); //为变量分配变量(使用new和默认的构造方法)
}
}

2.使用new运算符和类的构造方法为声明的对象分配变量,即创建对象。

class Person
{
int age;
String name; Person(int age,Stirng name){
System.out.println("the man age is"+age+"name: "+name);
} void speak(String name){
System.out.println(name);
}
}
public class OuXiang
{
public static void main(String[] args) {
Person liudehua; //声明对象
liudehua=new Person(53,"刘德华"); //为变量分配变量(使用new和类中的构造方法)
}
}

3 对象的内存模型

当用Person类声明变量liudehua,即对象liudehua时,Person liudehua; 内存模型如下
 
liudehua
null
声明变量后,liudehua的内存中还没有任何数据,这时的liudehua还是一个空对象,对象还不能使用,因为他还没有实体,必须为之分配变量,即为对象分配实体。
 
liudehua=new Person(53,"刘德华"); 此时就为对象分配了变量。
new运算符为变量age,name分配内存后,将返回一个引用给对象变量liudehua,也就是返回上图中0xAC12(相当于一个身份id)该引用包含代表着成员变量内存位置及相关重要信
 
息。

【转】java对象——new对象的理解的更多相关文章

  1. 对Java“一切皆对象”的理念的理解

    在从HelloWorld到面向对象中,我们将int, float, double, boolean等称为基本类型(primitive type),也就是特殊的类.我们可以将一个整数理解称为一个int类 ...

  2. 理解Java中的对象,变量和方法

    1.对象的创建和销毁 1.1 对象的创建 这里只介绍创建对象与构造方法的关系 (1).每实例化一个对象就会自动调用一次构造方法,实质上这个过程就是创建对象的过程,准确的说,在Java语言中使用new操 ...

  3. 深入Java虚拟机--判断对象存活状态

    程序计数器,虚拟机栈和本地方法栈 首先我们先来看下垃圾回收中不会管理到的内存区域,在Java虚拟机的运行时数据区我们可以看到,程序计数器,虚拟机栈,本地方法栈这三个地方是比较特别的.这个三个部分的特点 ...

  4. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  5. 解析Java类和对象的初始化过程

    类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...

  6. JVM调优-Java中的对象

    Java对象的大小 基本数据的类型的大小是固定的,这里不做详细说明.对于非基本类型的Java对象,其大小就值得商榷. 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没 ...

  7. Java数据类型和对象的引用

    在Java中,变量分为两类: 1.基本类型变量,java是传递的副本 2.一切对象型变量,传引用副本的实质是复制指向地址的指针 a.基本类型引用 public class BasicTransmit ...

  8. Java I/O 对象序列化

    我们知道对象的持持久化有三种方式: 1: 对象序列化 2: XML 3: 数据库技术 序列化可以帮助使得对象的生命周期不取决与程序是否正在执行,它可以生存于程序的调用之间. 只要将任何对象序列化到单一 ...

  9. Java中String对象的不可变性

    首先看一个程序 package reverse; public class Reverse { public static void main(String[] args) { String c1=n ...

随机推荐

  1. codeforces 946G

    题意: 有一个长度为n的数组a.你可以删除一个位置之后进行操作,一次操作可以把任意位置上的数字变成任意的值,问最少需要多少操作能使得数列变成严格上升的. n<=200000 分析: 如果没有删除 ...

  2. android 打开浏览器指定网页

    <?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> ...

  3. linux 源码编译安装apache

    cc1 是c语言的编译器.

  4. [Tools] Region commands to collapse the code by group

    For a file which contians lots of lines of code, we can use 'comments region' to collapse the code. ...

  5. Thinking in React(翻译)

    下面是React官方文档中的Thinking inReact文章的翻译,第一次翻译英文的文章,肯定有非常多不对的地方,还望多多包涵. 原文地址:https://facebook.github.io/r ...

  6. Frame Relay - 简单介绍及基本配置

    Frame Relay如今越来越不流行了,只是在过去的设计中被广泛应用. 所以工作上还是能常常见到的, 这篇博文从二层简单总结下FR的一些概念 在介绍Frame Relay之前,先了解下广播介质和非广 ...

  7. VBscript 做的设置网卡名称

    Set WSHShell=WScript.CreateObject("WScript.Shell") Dim NetcardDescriptionDim NetcardName i ...

  8. 【转载】C# sleep 和wait的区别

    eep和wait都是使线程暂时停止执行的方法,但它们有很大的不同. 1. sleep是线程类Thread 的方法,它是使当前线程暂时睡眠,可以放在任何位置. 而wait,它是使当前线程暂时放弃对象的使 ...

  9. openssl 再爆惊天漏洞及紧急修复指南

    openssl 又摊上大事了,2014年6月5日,SSL/TLS Man-in-the-Middle Vulnerability 该漏洞使得攻击者能够拦截恶意中间节点加密和解密数据.同一时候强迫使用弱 ...

  10. MapReduce算法形式一:WordCount

    MapReduce算法形式一:WordCount 这种形式可以做一些网站登陆次数,或者某个电商网站的商品销量啊诸如此类的,主要就是求和,但是求和之前还是要好好清洗数据的,以免数据缺省值太多,影响真实性 ...