- 浏览: 707503 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- Struts1.x (7)
- 事务 (2)
- Hibernate (11)
- 数据库 (14)
- JavaScript&Ajax (43)
- JSP&Servlet (2)
- Flex (1)
- 其它 (9)
- Java (22)
- 框架集成 (1)
- WebService (3)
- Tomcat (3)
- 加密和安全登录 (13)
- 基于原型的JavaScript (0)
- JavaDoc和Java编码规范 (3)
- CAS (1)
- 加密 (1)
- Axis2 (10)
- Ext2.x (3)
- SSH整合 (2)
- Ext (0)
- 正则表达式 (1)
- 设计模式 (4)
- 对象序列化技术 (3)
- CVS (2)
- Struts2 (6)
- Spring 2.x (7)
- Spring Security (2)
- Java 课程 (20)
- 程序员之死 (1)
- 软件测试 (6)
- UML (5)
- NetBeans (1)
- cxf (1)
- JMS (13)
- 设计 (5)
- ibatis2.x (3)
- Oracle (1)
- WebSphere (7)
- 概要设计 (1)
- DB2 (10)
- PowerDesigner (0)
- 软件工程 (5)
- rose (1)
- EA (1)
- LDAP (7)
- Portal&Portlet (3)
- MQ (10)
- ESB (4)
- EJB (2)
- JBoss (2)
最新评论
-
typeRos:
只有配置文件,没有代码么大神
Spring实现IBMMQ的JMS消息发布/订阅模式 -
panamera:
如果ActiveMQ服务器没有启动,这个时候消息生产者使用Jm ...
Spring JMSTemplate 与 JMS 原生API比较 -
lian819:
顶1楼, 引用文件, 配置属性, 太方便了
EXTJS 同步和异步请求 -
wilhard:
说得清楚明白
<%@ include file=""%>与<jsp:include page=""/>区别 -
刘琛颖:
总结的很好。受益了
javascript 父窗口(父页面)— 子窗口 (子页面)互相调用的方法
一、基本数据类型的包装类
1、
基本数据类型和包装类的对应关系
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean
2、封装类的实例化、使用以及装箱(1.5 之后的自动装箱)和拆箱(1.5 之后的自动拆箱)参见《Java API 1.5》
3、基础数据类型和封装类还可以通过和""进行连接运算,使之转化为字符串,例如:
/**
* Boolean 和 boolean 通过与空字符串进行连接操作,使之转化为 String 类型
*/
Boolean bool = true;
boolean bool2 = true;
String str_bool = bool + "";
String str_bool2 = bool2 + "";
/**
* Integer 和 int 通过与空字符串进行连接操作,使之转化为 String 类型
*/
Integer integer = 1;
int i = 1;
String str_integer = integer + "";
String str_i = i + "";
/**
* Character 和 char 通过与空字符串进行连接操作,使之转化为 String 类型
*/
Character character = 'c';
char c = 'c';
String str_character = character + "";
String str_c = c + "";
二、处理对象
1、toString() 方法
1.1 该方法打印出来的是:
对象的所属类的全名 + @ + hashCode
1.2 重写 toString() 方法
2、 == 和 equals 比较运算符
2.1、==:
作用于基本数据类型的变量时:当使用 == 来判断两个变量是否相等时,如果2个变量是基本类型的变量,且都是数值型(不一定要求数据类型严格相同),则只要两个变量的值相等,使用==判断就将返回true
作用于引用类型的变量时:对于两个引用类型的变量,必须它们指向同一个对象时(即堆内存地址相同时), == 判断才会返回true。
== 不可用来判断没有父子关系的两个对象。
示例:下面示例中,SubClass1 和 SubClass2 没有父子关系,即使 SubClass1 和 SubClass2 同时继承于一个类BaseClass,但是 SubClass1 和 SubClass2 之间没有任何关系。
2.2、equals
作用于基本数据类型的变量时:基本数据类型不属于对象,也就没有任何方法
作用于引用类型的变量时:等同于 ==
实质上对于引用类型的变量,== 和 equals() 方法是完全相同的。参见 Object 类的源代码:
/**
* Object 类中 equals 方法的源代码,由此可以看出,对于引用类型的变量,== 和 equals 是完全相同的。
*/
public boolean equals(Object obj) {
return (this == obj);
}
但是 String 类重写了 equals 方法。下面是 String 类的源代码:
/**
* String 类重写了 equals 方法,结构是只要两个 String 类型的
* 变量包含的字符序列相同,equals 方法即返回 true,否则返回 false
*/
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
/**
* Description:
* <br/>Copyright (C), 2005-2008, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class TestEqual
{
public static void main(String[] args)
{
int it = 65;
float fl = 65.0f;
//将输出true
System.out.println("65和65.0f是否相等?" + (it == fl));
char ch = 'A';
//将输出true
System.out.println("65和'A'是否相等?" + (it == ch));
String str1 = new String("hello");
String str2 = new String("hello");
//将输出false
System.out.println("str1和str2是否相等?" + (str1 == str2));
//将输出true
System.out.println("str1是否equals str2?" + (str1.equals(str2)));
String str3 = "hello";
String str4 = "hello";
//将输出true,注意这里 与 new String("hello"); 的不同。
System.out.println("str3和str4是否相等?" + (str3 == str4));
}
}
3、重写 hashCode 方法和 equals 方法
示例:
Person 类:
package mypackage;
public class Person {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public boolean equals(Object obj) {
if((!(obj instanceof Person)) || (obj == null)){
return false;
}
if(this.hashCode() != obj.hashCode()){
return false;
}
Person c1 = (Person) obj;
if(this.name != c1.getName() || this.id != c1.getId() || this.sex != c1.getSex()){
return false;
}
return true;
}
@Override
public int hashCode() {
int hashCode1 = this.id.hashCode();
int hashCode2 = this.name.hashCode();
int hashCode3 = this.sex.hashCode();
int hashCode = hashCode1 ^ hashCode2 ^ hashCode3;
return hashCode;
}
}
MainClass 类:
package mypackage;
public class MainClass {
public static void main(String[] args) {
Person c1 = new Person();
Person c2 = new Person();
Person c3 = c1;
c1.setId("001");
c1.setName("liu");
c1.setSex("fale");
c2.setId("001");
c2.setName("liu");
c2.setSex("fale");
System.out.println(c1.hashCode());
System.out.println(c2.hashCode());
System.out.println(c1.equals(c2));
System.out.println(c1 == c2);
System.out.println(c1 == c3);
/*
* 注意 String a = new String("aaa"); 与 String a = "aaa"; 的不同
*/
String a = new String("aaa");
String b = new String("aaa");
System.out.println(a == b);
System.out.println(a.equals(b));
String c = "aaa";
String d = "aaa";
System.out.println(c == d);
System.out.println(a == c);
}
}
发表评论
-
java:comp/env 解释
2012-07-13 13:40 10850关于获取数据源的语法,大体有(javax.sql.D ... -
java.naming.factory.url.pkgs 的用途
2012-06-28 09:48 1764原文地址:http://blog.csdn.net/l ... -
解析 HTTP
2010-11-14 18:09 48113、HTTP 请求 客户端通过发送 HTTP 请求向服务器 ... -
Tomcat server.xml 文件
2010-11-07 17:21 1233Tomcat 服务器有一系列可配置的组件构成,这些组件 ... -
Tomcat的体系结构
2010-11-04 21:13 1488Tomcat的体系结构 Tomcat服务器是由一系列可配 ... -
第十四课时: 输入/输出1
2010-10-30 20:48 1327Java 的 IO 支持通过 java.io 包 ... -
第十七课时: 网络编程
2010-10-18 22:00 1156一. 网络编程的基础知 ... -
第十六课时: 多线程
2010-10-07 14:24 989一. 继承 Thread 类创建线程 通过继承 Thread ... -
第十四课时:输入/输出2
2010-09-05 15:54 1260... -
第十三课时:Annotation 注释
2010-08-29 15:55 1140从 JDK 5.0 开始,Java 增加了对元数据 ( ... -
第十二课时:JDBC 编程 (2)
2010-08-28 13:13 882示例: import java.sql.*; impor ... -
第十二课时:JDBC 编程 (1)
2010-08-08 15:52 2110一、SQL 语句基础 SQL 的全称是 Structured ... -
第11课时:异常处理
2010-07-25 16:51 1155一、异常处理机制 1、使用 try...catch 捕获异常 ... -
第十课时:与运行环境交互
2010-07-24 06:03 786一、与用户交互 1、使用 Scanner 获取键盘输入 获 ... -
第九课时:泛型
2010-07-11 17:00 1393一、定义泛型接口、类 JDK 1.5 改写了 ... -
第六课时:面向对象(5)—— 2010年05月22日
2010-07-04 13:45 995一、内部类 在某些情况下,我们把一个类放在另一个类的 ... -
第三课时:面向对象(2)
2010-05-02 23:20 1427一、成员变量与局部变量 二、类的继 ... -
第二课时:数组、面向对象(1)
2010-05-02 23:19 965一、数组 1、 ... -
第一课时提纲:Java 基础(GC)
2010-03-22 23:22 1194一、Java 命名规范 1、对常量的命名规范: ...
相关推荐
在本课时中,学生将深入学习面向对象编程的几个关键概念,包括继承、抽象基类、多态、多重继承、混合继承以及运算符重载。 1. **继承**:继承是面向对象编程中的一种机制,允许一个类(子类)从另一个类(父类)...
根据提供的文件内容,本篇面向对象上机练习主要涉及C++中的类设计、对象创建、成员函数的使用、构造函数、以及具体的工资计算业务逻辑。以下知识点将详细阐述这些方面的内容。 ### 类与对象设计 - **类的定义**:...
### 第四章:类与对象 - **4.1 面向对象编程基础**:介绍类的定义,对象的创建与销毁,封装的概念。 - **4.2 构造函数与析构函数**:理解构造函数的自动调用,析构函数的用途,以及默认构造函数和拷贝构造函数。 - *...
面向对象的四个核心原则——封装、继承、多态和抽象,在课程中会逐一解析。封装允许隐藏实现细节,只暴露必要的接口;继承则允许子类继承父类的属性和方法;多态是指同一消息可以被不同对象以不同方式响应;抽象则是...
在本章"Python基础教程-第7章-Python面向对象"中,我们将深入探讨这一主题。 首先,面向对象编程(OOP)是一种编程范式,它基于"对象"的概念,这些对象包含数据(属性)和操作这些数据的方法(函数)。与面向过程...
"第四章4-5.ppt"和"第四章1-3.ppt"的主题可能是"派生类与继承(一)(3课时)",这部分内容深入探讨了C++的继承机制。继承允许创建一个新的类(派生类)来扩展或修改已存在的类(基类)。通过继承,可以实现代码重用...
* 第四章:列表、元组、字典和集合 * 第五章:函数与模块 * 第六章:文件 I/O * 第七章:面向对象编程 * 第八章:错误和异常 * 第九章:os、sys 模块及应用 * 第十章:正则表达式 * 第十一章:多线程及多进程编程 * ...
- **面向对象编程**:讲解类、对象和继承的概念,以及如何设计和实现简单的面向对象程序。 - **文件操作和异常处理**:教授读写文件、错误处理和异常捕获。 - **数据结构**:介绍列表、元组、字典和集合,以及如何...
驼峰命名法是编程中常用的变量命名规范,特别是在面向对象编程中。这种命名方式要求每个单词的首字母大写,如“myVariableName”。在创建一个由三个单词组成的变量时,例如“studentFirstName”,可以先定义这个变量...
在第1章“面向对象软件开发概述”中,主要讨论了从面向机器语言到面向对象语言的发展历程,强调了面向对象方法相较于传统结构化方法的优势,如提高软件的可维护性、可重用性和可扩展性。面向对象的核心概念包括将...
掌握面向对象的编程思想 能够使用Visual Studio.NET图形化界面开发环境 课时:108 课时 分为两部分 讲课部分:36 课时,课堂教学 实践部分:72 课时,课程实验 培养目标 通过本课程的学习,学生可以具备掌握使用...
- 面向对象的核心在于将数据(属性)和操作这些数据的方法(行为)封装在一起形成一个对象。 8. **条件语句的结构** - `if`语句后可以跟任意数量的`else if`语句。 - `if`语句后面只能跟一个`else`语句。 9. **...
3. 第4章(6课时):此章可能深入到软件设计,涵盖模块化设计、结构化设计和面向对象设计等方法,同时可能探讨设计模式及其应用。 4. 第7章(7课时):这一部分可能讲解软件实现,包括编程语言的选择、编码规范、版本...
3. **数组与集合**: 第4章通常涉及数组的使用,包括一维和多维数组,以及如何操作数组。第5章可能涵盖集合框架,如ArrayList、LinkedList、HashSet和HashMap等。代码答案会展示如何高效地存储和处理数据。 4. **...
### C++基础知识与面向对象程序设计 #### 一、课程介绍 - **课程性质与目的**:本课程作为计算机及相关专业本科生的通识基础课,旨在让学生了解面向对象的程序设计思想,掌握C++语言的基本知识。课程内容覆盖了封装...
Scratch是一款由麻省理工学院(MIT)设计开发的面向儿童的编程工具,它通过图形化编程块使得编程变得简单而有趣。在这个“Scratch画图第二课时-图形变化-神奇的花.rar”资源中,我们将深入学习如何利用Scratch实现图形...
1. 学习对象:这份资料面向的是七年级的学生,即初一的学生,他们通常在12-13岁之间。这个年龄段的学生处于认知发展的关键期,对于时间概念的理解尤为重要。 2. 课程内容:课程的核心内容是教授学生“认识整时”。...
- 第3章Object Pascal基本语法:讲解语言基础、控制语句、自定义数据类型、程序结构、过程与函数,以及异常处理机制和面向对象编程基础。 - 第4章Delphi基本组件功能及使用:介绍组件的理解、分类、基本特征(属性、...
本章的第六课时聚焦于平面的基本性质,这些性质是理解更复杂几何问题的基础。 1. 命题分析: - ① 梯形的四个顶点在同一平面内:这是正确的,因为梯形的对角线互相平分,意味着它们的交点以及四个顶点都在同一平面...