java对象与类

1.构造器总是伴随着new操作符的执行而被调用,而不能对一个已经存在的对象调用构造器来达到重新设置实例域的目的。

2.静态域与静态方法

如果将类定义为static,每一个类只有一个这样的域。静态域是属于类的,而不属于任何独立的对象,其又被称为类域。

静态方法是一种不能向对象实施操作的方法,但是他可以访问自身类中的静态域。

main方法也是一个静态方法,main方法不对任何对象进行操作,实际上,在启动程序时还没有任何一个对象。静态的Main方法将执行并创建所需要的对象。

3.方法参数

常见的将参数传递给方法的方式有2种:按值调用,按引用调用

按值调用表示方法接受的是调用者提供的值,按引用调用表示方法接受的是调用者提供的变量地址;

java程序设计语言总是采用按值调用,也就是说,方法得到的是所有参数值得一个拷贝,特别的,方法不能修改传递给他的任何参数变量得内容

例如

public static void tripleValue(double x){
    x=3*x;
}

然后,调用这个方法

double percent=10;
tripleValue(percent);

在调用完这个方法后,percent的值还是10.

下面来看一下上面代码的具体执行过程

a.首先,x被初始化为percent值得一个拷贝(也就是10)

b.然后,x在被乘3后变成30,但是percent 依然是10

c.在这个方法中,x变为了30,但是在方法结束之后,参数变量x不再使用,percent依然还是10.

一般来讲,方法参数共有两种类型:

a.基本参数类型(数字,布尔值)

b.对象引用

从上面可以看出,一个方法是不能修改一个基本数据类型的参数,但是当参数为对象引用就不一样了

例如,下面程序实现将一个员工的工资提升两倍

1 public static void tripleSalary(Employee x)
2 {
3     x.raiseSalary(200);
4 }

当调用

1 harry=new Employee(...);
2 tripleSalary(harry);

后,员工的工资加倍了

下面来看一下具体的执行过程

a.x被初始化为harry值的拷贝,这里是一个对象的引用

b.raiseSalary方法应用于这个对象引用。x和harry同时引用的那个Employee对象的工资提升了200%

c.方法结束后,参数变量x不在使用,当然,对象变量harry继续引用那个工资增至3倍的员工对象

java对于对象采用的也是值传递的方式,但是不少人认为采用的为引用调用,下面给出一个反例

//首先,编写一个交换两个员工对象的方法;
public static void swap(Employee x,Employee y)
{
    Employee temp=x;
    x=y;
    y=temp;
}

如果java对于对象采用的是按引用调用,那么这个方法就能够实现交换数据的效果

Employee a=new Employee("Alice",...)
Employee b=new Employee("Bob",...)
swap(a,b)

但是,方法并没有改变储存在变量a和变量b中的对象引用,swap方法的参数x,和参数y被初始化为两个对象引用的拷贝,这个方法交换的是这两个拷贝。

//x refers to Alice,y to Bob
Employee temp=x;
x=y;
y=temp;

//now x refers to Bob,y to Alice

两个拷贝被成功交换了,但随着方法的结束,参数变量随之被丢弃,原来的a,b 变量仍保留方法调用之前所引用的对象,实质上,对象引用是按值传递的

总结一下java中方法参数的使用情况:

a.一个方法不能修改一个基本参数类型的参数(即数值型,布尔型)

b.一个方法可以改变一个对象参数的状态

c.一个方法不能让对象参数引用一个新的对象

原文地址:https://www.cnblogs.com/pathjh/p/8666681.html

时间: 2024-11-12 10:35:10

java对象与类的相关文章

Java 对象和类

1.访问实例变量和调用成员方法: 2. 在该例子中,我们创建两个类:Employee 和 EmployeeTest. 首先打开文本编辑器,把下面的代码粘贴进去.注意将文件保存为 Employee.java. Employee类有四个成员变量:name.age.designation和salary.该类显式声明了一个构造方法,该方法只有一个参数. 程序都是从main方法开始执行.为了能运行这个程序,必须包含main方法并且创建一个实例对象. 下面给出EmployeeTest类,该类实例化2个 Em

[Java学习笔记]-Java对象和类

Java是完全面向对象的高级语言,其基本的操作基本都是针对相应的对象和类.面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分.对应面向对象的语言,还有一种面向过程的语言,如C语言.面向对象的语言是在面向过程语言的基础上发展而来的.面向对象(OOP,全称为Object-Oriented-Programer,下文简称为OOP)相对于面向过程的语言而言,其优势在于很多问题的解决方法被封装在对象里,有时只需要创建这样的对象就可以解决我们的问题,而不必关心其具体实现细节,这

Java对象转xml报文和xml报文转Java对象帮助类

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; /** * xml和java对象转换帮助类 * Cre

Java对象和类

转自原文:http://www.yiibai.com/java/java_object_classes.html java是一种面向对象的语言.由于具有面向对象特性的语言,Java支持以下基本概念: 多态性 继承 封装 抽象化 类 对象 实例 方法 消息解析 在本章中,我们将探讨类和对象这些概念. 对象 - 对象具有状态和行为.例如:狗有状态 - 颜色,名称,繁殖以及行为,摇头晃脑,吠叫,吃.对象是类的实例. 类 - 一个类可以被定义为描述行为的模板/蓝色印花/指出其类型支持的对象. Java对

java 对象与类

类与类之间的关系 一.继承关系      继承指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力.在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性.在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口. 二.实现关系      实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系.在Java中此类关系通过关键字implem

Java对象、类、消息和特性

面向对象编程基础 ?  对象 对象object就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为. 对象是有状态(数据)和行为(功能)等内容的.例如:要说明一个学生,需要提供姓名.学号.出生日期.专业.兴趣爱好等,这些用于描述对象的数据元素称为对象属性.而学生的行为会包括注册.选课.考试等,这些表示对象可能产生的操作称为对象的行为(或操作.方法). ?  类 类class中定义一类对象共有的变量和方法.把一个类实例化即生成该类的一个对象. 类(class)是同一类型对象

java对象锁&类锁

首先,来看一段代码. 1 public class PersonSet { 2 3 private final Set<Person> mySet = new HashSet<Person>(); 4 5 public synchronized void add(Person p){ 6 mySet.add(p); 7 } 8 9 public synchronized boolean contains(Person p){ 10 return mySet.contains(p);

json字符串转java对象实体类

DpRccEntity rccData = JSON.parseObject(JSONObject.toJSONString("JSONString",DpRccEntity.class); 导入的包为:import com.alibaba.fastjson.JSON; 原文地址:https://www.cnblogs.com/huyanlon/p/10907726.html

java基础知识-对象和类

前言: 因为要准备Java面试,所有将java基础知识点重新复习一遍,主要笔记来源于菜鸟教程和java核心技术的书籍中,也有一些博客上的资料(这些只供我个人学习使用) Java 对象和类 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是一个模板,它描述一类对象的行为和状态. 下图中男孩女孩为类,而具体的每个人为该类的对象: 1.Java中的对象 现在让我们深入了解什么是对象.看看周围真实的世界,会发现身边有很多对象