JAVA类与对象(五)----对象的生成、使用

对象的生成

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

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();
    }
}

对象的使用

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

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!!!");
    }
}

时间: 2024-10-13 15:51:27

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

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

最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理了些 1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF 采用eclipse在线安装方式安装就好. eclipse在线安装GEF的地址:http://download.eclipse.org/tools/gef/updates/releases/ 安装好GEF后,安装AmaterasUML 先到如下地址下载:http://sourceforge.jp/projects/amateras/download

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

学习java编程思想--类的初始化p146 类的加载顺序* 1加载器启动找到 xxx.class文件,通过extends关键字寻找基类,先加载基类* 2类初始化先初始化static成员变量和static--->* 2先初始化父类的static成员变量和static* 3再初始化本类的static成员变量和static * 类加载之后,对象创建开始* 1先加载父类的非静态成员变量(静态成员变量在类初始化的时候已经加载,非静态成员变量要随对象的创建而初始化)* 2先加载父类的构造函数* 3再加载本类

Android Chromium:不成功的尝试,无法从Typeface.java类获得C++ SkTypeface对象

这也就是说,Java Activity层的用户自定义默认字体通过标准framework/JNI的途径是无法传递应用到Chromium内核的. 本来的基本想法是:通过Typeface.DEFAULT获得Java层的系统当前默认字体设置,通过Java动态反射调用获得native_instance句柄,然后尝试用JNI C++代码获得SkTypeface*指针,调用SkTypeface::serialize序列化到一个临时字体文件,然后将此路径回传Java,再重新传到Chromium内核代码. 帖2段

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

相信我们在面试Java的时候总会有一些公司要做笔试题目的,而Java类的加载和对象创建流程的知识点也是常见的题目之一.接下来通过实例详细的分析一下. 实例问题 实例代码 Parent类 1 package mytest.javaBase; 2 3 public class Parent { 4 int a = 10; 5 static int b = 11; 6 // 静态代码块 7 static { 8 System.out.println("Parent静态代码块:b=" + b)

Java类和对象编程示例

一.Java类的定义和对象的创建 1.定义一个Circle圆类. (1)一个名为radius的double型数据域,表示圆的半径,其默认值为1. (2)创建默认圆的无参构造方法. (3)一个创建radius为指定值的圆的构造方法. (4)数据域radius的访问器和修改器. (5)一个名为getArea()的方法返回这个圆的面积. (6)一个名为getPerimeter()的方法返回周长. class Circle { private double radius=1; public Circle

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

JAXB(Java API for XML Binding),提供了一个快速便捷的方式将Java对象与XML进行转换.在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版本JAX-WS2.1,其底层支持就是JAXB. JAXB 可以实现Java对象与XML的相互转换,在JAXB中,将一个Java对象转换为XML的过程称之为Marshal,将XML转换为Java对象的过程称之为UnMarshal.我们可以通过在Java 类中标注注解的方式将一个Java对象绑定到一段X

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

JAVA之旅(五)--this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名的情况 this的特点 this就代表本类对象 这在我们的set方法里面是有的 public void setName(String name) { this.name = name; } this代表他所在的函数对属对象的引用 现在我们这里有这么一个需求 //公共的 类 类名 public class H

有关java类、对象初始化的话题,从一道面试题切入

最近在整理东西时,刚好碰到以前看的一道有关java类.对象初始化相关题目,觉得答案并不是非常好(记忆点比较差,不是很连贯).加上刚好复习完类加载全过程的五个阶段(加载-验证-准备-解析-初始化),所以如果周志明大大诚不我欺的话,无论是类加载过程.还是实例化过程的顺序我都已经了然于心了才对. 一道面试题 标题:2015携程JAVA工程师笔试题(基础却又没多少人做对的面向对象面试题) 地址:https://zhuanlan.zhihu.com/p/25746159 该题代码如下: public cl

js原型对象与Java类的区别

在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同. 首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法:而原型对象本身就是一个方法体,它可以直接运行.二者在构造对象的过程中,js可以扮演两种角色,一个可以将原型对象当方法来使用,才接触js时,都是以这种形式来使用,即万物皆方法体,像c;另一个是模仿面向对象的特性,为原型对象定义属性,运用构造器时,将构造器构造的对象的指针指通过原型链指向原型对象的属性,从而实现面

java类对象

不错的文章 原文地址:(转载)java中的Class类与Class对象作者:albert1017 本文用作笔记之用,引用的网上资料: http://www.blogjava.net/formatmyself/articles/21291.html写得比较全面 http://www.open-open.com/lib/view/1328753336405例子比较好 http://zhidao.baidu.com/question/386608758.html解释得简洁清楚 Java程序在运行时,J