对象的生成

创建一个对象包括对象的声明、实例化、初始化三部分。

1.声明-----类名对象名

  声明并不是为对象分配内存空间,而只是分配一个引用空间。对象的引用类似于指针,是32位的地址空间,它的值指向一个中间的数据结构,它储存有关数据类型的信息以及当前对象所在的堆的地址,而对于对象所在的实际的内存地址是不可操作的,这就保证了安全性。

2.实例化

  运算符new为对象分配内存空间,它调用对象的构造方法,返回引用。一个类的不同对象分别占用着不同的内存空间。

3.生成

  执行构造方法进行初始化,根据参数不同调用相应的构造方法。

注意:如果类中没有构造方法,系统会自动调用默认的构造方法。默认的构造方法是无参数的。如果类中定义了构造方法,则必须使用类中定义的构造方法,否则会出错!

例:

class Student{
float height,weight;
String head,ear,hand,foot,mouth;
Student()
{
height=0;
weight=0;
head="myhead";
ear="myear";
hand="myhead";
foot="myfoot";
mouth="mymouth";
System.out.println("new Student ok!!!");
}
} public class Man{
public static void main(String args[]){
Student zhangsan=new Student();
}
}

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAAAnCAIAAADihhF2AAAC2klEQVR4nO2bXXKDMAyEOXQukJtxqBygD50yrq2flWxAGfZ76CRCSGt5IWmTbp/3ayPkdnJG3Pd9tRDybD7v1z6AnKilJUpNktN/C662K/W347p/dL93xE4BIsjOuXhJCf134c7tSvGdES/rK9AZEVdDI6apI+/LjKipNKTTiDZFFFY0ovEuYYkRx/r2exRDj9turGnUH8/tDkV17hKuZm3JdkdEj0FXB+kbbYGSfmm2k8dVLXlstNN2vY1oyxTj0TriY3uwbvCauW3/V2fXjLZAmTGikW/EQ4MDrzz8khCDoBFtAVEjhkZ36tzan3hf7ZQk4m/NOPg024tvzMTzQzK0Q8ZA9z/AFqJO14i44AvmptU31iU+nSL95xs72d7p8RCej2tIyJupgxvRXpFbs326ZG624QoZ8bg4RKI7LV7EWsRubWtIyDs6jn3tOl2+YUR3OVqd8+ZmGFFblyYgD/LJyrwR2yL4Hmv5YqbWETmqKWkFuMPpHhhBm1HDqXPrlgmuK7QiiCVfemjX00a+DmSnz+77paObZa0RF18lQxeR87qsrVytaS34NTBSAhqRlIBGJCWgEUkJaERSgsuMeOqvujXRlhmNP4JrjHjG3+duN7QrgEYMUMGI6Q2Y3Ln5jacRl3GLEUNHzzhxyeluBRoxwPFZ86Z8eji+sevyN+xVUkwQ3zh21cSno1RXJ1LE1i/W6Y66S07EH0H7rwJHsJ1vm3zsq5spou36GNR2NBEX1Wp9Ndy+4Lpy8Udgfw0M3IDQBF3bzegB41pfDbv+KsPRiM4dpaVNOCLRCbqGyN35NJ1436jgrh3JE7ojdgm4C6OGmLzzpftquH3pxVlyL81GjghoCLGmdodD7nzRvhrIie7llI4/gvYb2r8R7Wl6F7siYr5Y/whq8myd9lOtL7IETYk2orFUKP4I+FkzKQGNSEpAI5IS0IikBDQiKQGNSEpAI5IS0IikAj8rw8CalPG5bgAAAABJRU5ErkJggg==" alt="" />

对象的使用

  对象不仅可以改变自己变量的状态,而且还拥有使用创建它的那个类中的方法的能力。对象通过这些方法可以产生一定的行为,通过运算符“.”可以实现对变量和方法的访问。而变量和方法通过设置的权限来限制其他对象对自身的访问。

1.对象调用自己的变量

对象名.变量名

2.对象调用自己的方法

 对象名.方法名(参数);

例:

class Person{
float height,weight;
String head,ear,hand,foot,mouth;
Person()
{
height=175;
weight=70;
head="myhead";
ear="myear";
hand="myhead";
foot="myfoot";
mouth="mymouth";
System.out.println("new Student ok!!!");
}
void speak(String s)
{
System.out.println("say:"+s);
}
} public class Human{
public static void main(String args[]){
Person zhangsan=new Person();
zhangsan.speak("hello java!!!");
Person lisi=new Person();
lisi.ear="大耳朵";
lisi.speak("I am studying java!!!");
}
}

aaarticlea/png;base64,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" alt="" />

JAVA类与对象(五)----对象的生成、使用的更多相关文章

  1. eclipse下生成Java类图和时序图,生成UML图

    1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF采用eclipse在线安装方式安装就好.eclipse在线安装GEF的地址:http://download.ecli ...

  2. java类的初始化和对象的创建顺序

    学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和stati ...

  3. java类转化为json对象

    方式一:使用jar包,直接转化成json格式,再使用outwrite写到jsp中 先说说要使用到的包commons-beanutils.jar.commons-collections.jar.comm ...

  4. 【Java基础】Java类的加载和对象创建流程的详细分析

    相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下. 实例问题 实例代码 Parent类 package ...

  5. Eclipse下生成/编辑Java类图或时序图(UML)[转载]

    一 引用文章 1.[eclipse下生成Java类图和时序图,生成UML图(更完整版)](https://blog.csdn.net/guomainet309/article/details/5302 ...

  6. java类在何时被加载

    我们接着上一章的代码继续来了解一下java类是在什么时候加载的.在开始验证之前,我们现在IDEA做如下配置. -XX:+TraceClassLoading 监控类的加载 我们新建了一个TestCont ...

  7. 转: JaxbContext生成xml文件或java类对象转化注解

    JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换.在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版 ...

  8. JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块

    JAVA之旅(五)--this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名的情况 ...

  9. 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)

    本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...

  10. Java虚拟机笔记(五):JVM中对象的分代

    为什么要分代 为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用, ...

随机推荐

  1. dubbo使用遇到的问题

    转自:http://blog.csdn.net/liwf_/article/details/40297121?utm_source=tuicool&utm_medium=referral 把一 ...

  2. console.log在线调试

    前端开发人员工作有时候会用到console.log,PC端直接能打开开发者工具.但是移动端就不太方便了,为此提供一种简单的方法,只需2步: 1.打开http://jsconsole.com/  输入: ...

  3. logcat保存当前应用程序的日志并上传服务器或指定邮箱

    给大家分享一个项目中用到的日志统计并提交服务器的日志工具类.通过过得当前app的PID,采用命令行的方式实用logcat工具过滤日志.代码区: package org.and.util; import ...

  4. POJ C++程序设计 编程题#1 编程作业—STL1

    编程题#1 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面的程序输出结 ...

  5. Windows 和  Linux 下 禁止ping的方法

    Windows 和Linux 下 禁止ping的方法 目的: 禁止网络上的其他主机或服务器ping自己的服务器 运行环境: Windows 03.08  linux 方法: Windows 03下: ...

  6. foreach 和 list.foreach 初步测试

    单纯从速度上讲 小数据量下foreach 较快,list.Foreach 由于 public void ForEach(Action<T> action) { ; i <this._ ...

  7. C# 多线程运用

    没有用过多线程,所以没有过多的了解操作原理以及怎么编写多线程 后来才只知道将一个传入的集合分别拆开为N个集合来进行使用 //分线程执行 public static void OperateThread ...

  8. PHPExcel上传sae遇到: -1:fail to get xml content

    在用PHPExcel1.8.0来处理excel时,本地测试时好使的,但是要把代码部署到SAE,在上传代码的时候就会遇到这个问题. 部署代码中遇到问题: -1:fail to get xml conte ...

  9. C# 鼠标悬停在datagridview的某单元格,显示悬浮框效果

    今天在做项目时,看到一软件做的悬浮框效果不错,从网上搜罗了一些资料,未见到有十分好的解决办法,只能自已动手,利用datagridview 的ToolTipText 来达到此效果. 以下是我简单实现的代 ...

  10. Vue.js学习 Item1 --快速入门

    我们以 Vue 数据绑定的快速导览开始.如果你对高级概述更感兴趣,可查看这篇博文. 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.在浏览器新标签页中打开它,跟 ...