ws.aspx 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head id="Head1" runat="server">
<
title></title>

<
script src="jquery.js" type="text/javascript"></script>

<
style type="text/css">
.hover
{
cursor: pointer; /*小手*/
background: #ffc; /*背景*/
}
.button
{
width: 150px;
float: left;
text-align: center;
margin: 10px;
padding: 10px;
border: 1px solid #888;
}
#dictionary
{
text-align: center;
font-size: 18px;
clear: both;
border-top: 3px solid #888;
}
#loading
{
border: 1px #000 solid;
background-color: #eee;
padding: 20px;
margin: 100px 0 0 200px;
position: absolute;
display: none;
}
#switcher
{
}
</style>

<
script type="text/javascript">


//无参数调用
$(document).ready(function() {
$('#btn1').click(function() {
$.ajax({
type: "POST", //访问WebService使用Post方式请求
contentType: "application/json", //WebService 会返回Json类型
url: "WebService1.asmx/HelloWorld", //调用WebService的地址和方法名称组合 ---- WsURL/方法名
data: "{}", //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到
dataType: 'json',
success: function(result) { //回调函数,result,返回值
$('#dictionary').append(result.d);
}
});
});
});


//有参数调用
$(document).ready(function() {
$("#btn2").click(function() {
$.ajax({
type: "POST",
contentType: "application/json",
url: "WebService1.asmx/GetWish",
data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}",
dataType: 'json',
success: function(result) {
$('#dictionary').append(result.d);
}
});
});
});


//返回集合(引用自网络,很说明问题)
$(document).ready(function() {
$("#btn3").click(function() {
$.ajax({
type: "POST",
contentType: "application/json",
url: "WebService1.asmx/GetArray",
data: "{i:10}",
dataType: 'json',
success: function(result) {
$(result.d).each(function() {
//alert(this);
$('#dictionary').append(this.toString() + " ");
//alert(result.d.join(" | "));
});
}
});
});
});


//返回复合类型
$(document).ready(function() {
$('#btn4').click(function() {
$.ajax({
type: "POST",
contentType: "application/json",
url: "WebService1.asmx/GetClass",
data: "{}",
dataType: 'json',
success: function(result) {
$(result.d).each(function() {
//alert(this);
$('#dictionary').append(this['ID'] + " " + this['Value']);
//alert(result.d.join(" | "));
});

}
});
});
});

//返回DataSet(XML)
$(document).ready(function() {
$('#btn5').click(function() {
$.ajax({
type: "POST",
url: "WebService1.asmx/GetDataSet",
data: "{}",
dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了
success: function(result) {
//演示一下捕获
try {
$(result).find("Table1").each(function() {
$('#dictionary').append($(this).find("ID").text() + " " + $(this).find("Value").text());
});
}
catch (e) {
alert(e);
return;
}
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
if (status == 'error') {
alert(status);
}
}
});
});
});




//Ajax 为用户提供反馈,利用ajaxStart和ajaxStop 方法,演示ajax跟踪相关事件的回调,他们两个方法可以添加给jQuery对象在Ajax前后回调
//但对与Ajax的监控,本身是全局性的
$(document).ready(function() {
$('#loading').ajaxStart(function() {
$(this).show();
}).ajaxStop(function() {
$(this).hide();
});
});

// 鼠标移入移出效果,多个元素的时候,可以使用“,”隔开
$(document).ready(function() {
$('div.button').hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
});


</script>

</
head>
<
body>
<
form id="form1" runat="server">
<
div id="switcher">
<
h2>
jQuery 的WebServices 调用</h2>
<
div class="button" id="btn1">
HelloWorld</div>
<
div class="button" id="btn2">
传入参数</div>
<
div class="button" id="btn3">
返回集合</div>
<
div class="button" id="btn4">
返回复合类型</div>
<
div class="button" id="btn5">
返回DataSet(XML)</div>
</
div>
<
div id="loading">
服务器处理中,请稍后。
</div>
<
div id="dictionary">
</
div>
</
form>
</
body>
</
html>

WebService1.asmx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;

namespace jQuery.Learning
{
/// <summary>
///
WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
/// <summary>
///
无参数
/// </summary>
/// <returns></returns>
[WebMethod]
public string HelloWorld()
{
return "Hello World ";
}

/// <summary>
///
带参数
/// </summary>
/// <param name="value1"></param>
/// <param name="value2"></param>
/// <param name="value3"></param>
/// <param name="value4"></param>
/// <returns></returns>
[WebMethod]
public string GetWish(string value1, string value2, string value3, int value4)
{
return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4);
}

/// <summary>
///
返回集合
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
[WebMethod]
public List<int> GetArray(int i)
{
List<int> list = new List<int>();

while (i >= 0)
{
list.Add(i--);
}

return list;
}

/// <summary>
///
返回一个复合类型
/// </summary>
/// <returns></returns>
[WebMethod]
public Class1 GetClass()
{
return new Class1 { ID = "1", Value = "牛年大吉" };
}


/// <summary>
///
返回XML
/// </summary>
/// <returns></returns>
[WebMethod]
public DataSet GetDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("ID", Type.GetType("System.String"));
dt.Columns.Add("Value", Type.GetType("System.String"));
DataRow dr = dt.NewRow();
dr["ID"] = "1";
dr["Value"] = "新年快乐";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = "2";
dr["Value"] = "万事如意";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
return ds;
}


}
//自定义的类,只有两个属性
public class Class1
{
public string ID { get; set; }
public string Value { get; set; }
}
}
posted @ 2011-07-17 23:58 yongwnet 阅读(29) 评论(0) 编辑

一个产品经理需要一些素质?怎么样才能做一个成功的产品经理?产品经理的性格是怎么样的?产品经理是“通”才还是“专”才……很多问题困扰着产品经理,其实能真正称得上产品经理的有多少人?有多少人可以全力承担一条产品线,将产品打造成一个品牌,不是靠流量,而是靠用户对产品的认识,一提起产品名就让用户头脑中有产品的印象,深入人心的产品又有多少?一个真正的产品经理就决定了这个产品的什么样,所以对于产品经理的要求在很多企业已经越来越高了。
下面的内容仅代表自己作为一个产品经理想到的,如有不同意见欢迎大家拍砖。
产品经理的素质归为三类:1、个人能力;2、管理知识;3、核心能力。


1、个人能力
1)创新能力
一个产品经理如果墨守成规那他真的不适合在互联网中,互联网注定是一个日新月异的环境,将创新能力做为个人素养的第一条,要说明的就是产品经理一定要有自己的思想,没思想的产品经理是可怕的,创新能力不来于一朝一夕,更多的是时间的积累。
2)执行能力
当需求确定后,产品经理需要有严格的执行能力,对产品概念的理解,对产品需求的理解,而后去执行产品过程 ,当你BOSS为最大的产品经理时,你需要做的就是执行,同时在执行过程中得表达你的想法,你的认识,你才是真正的产品经理,做的同时更需要你的产品理念去执行这个产品。
3)协调能力
产品经理一定是个“中场大师”,输送炮弹的指挥官,面对UED,面对用户,面对开发,面对BOSS,如何做到资源沟通协调,如保做到最适度的协调保证产品正常的按周期进行,更多的体现你在人际中的个人魅力、人格魅力。千万别让其它同事跟着你做无用功,需求变更是经常的事,但尽可能少的改动需求,其它人不怨老板,但会怨产品经理。
4)自我管理能力
产品经理要学会自我管理,个人的知识、能力、性格等多方面的管理,暴君似的产品经理真的不适合拥有健康的企业文化的公司,而伪娘似的产品经理很多时候可以在众多的企业中生存下来。自我管理,资源及技术等的掌握,做一个适合企业和产品发展的产品经理。
5)承受压力能力
产品经理是忍者神龟。压力会来自多方面,而产品经理一定要有过硬的心理素质,上对BOSS,下对用户,产品永远是产品经理的孩子,不论是多丑,出生了就有义务将它带大,用户的指责,BOSS的KPI,个个压力都压在产品经理肩上,学会释放压力,自我调节,当然加班对产品经理来说永远是家常便饭。

2、管理知识
1)战略管理知识
战略管理很多在公司BOSS已经定好了,而产品经理只要理解产品的战略规划就行,但做为产品经理职业发展规划中的一部分,产品经理要将产品战略管理当成自己的职能之一,当到高级产品经理,或更上一层职位时一定会触到产品战略,站在更高层次看产品经理。
2)产品管理知识
当产品定下来后,一切的计划及工作都将围绕着产品展开。制定产品计划 、评估产品风险、竞争对手分析、争取产品资源 、管理产品团队、协调产品问题 、控制产品周期进度等一系列产品管理计划需要产品经理去制定。产品管理的知识涉透到产品的整个过程,需要产品经理不断的完善,更新,改进。
3)时间管理知识
学会撑握时间。产品经理经常要和时间赛跑,让其它人员加班就是产品经理的错,产品经理对于整个产品进度都得把握和计划好,当资源冲突,当多条产品线同时需要研发等情况下,做好时间管理,统筹安排时间。别无谓的加班,也别让别人无谓的加班。
4)团队管理知识
产品经理不是孤军奋斗,你永远会有一个团队在支撑着你。团队协作,团队人员工作协调与调配,为产品努力的每个人员都是团队的一员,不论工作重与轻,多与少,都是团队人员的一名,努力让团队凝聚在一起,是一个团队,同时也是狼性团队培养的开始。

3、核心能力
1)产品规范管理
无规矩不成方圆。产品要有自己的规范,而做为产品经理也需要有自己的产品规范,在互联网环境中,阿里、腾讯、百度等互联网公司对产品经理的产品规范都有自己的认识和理解,因为他们选择适合自己企业的产品规范,做为产品经理一定要有自己的产品规范,可以随着公司的变化改变,但一定要形成有自己产品规范的产品经理,同时是可以随时转换适合企业需要的产品经理。
2)产品需求管理
产品经理主要功能之一就是需求分析及整理,市场、BOSS、运营等会提出形形色色的需求,而产品经理则需要将这些需求重新整理与分析,产品核心功能的挖掘一定是出自于需求。产品经理需要与市场、BOSS、运营等确定需求,改进需求,提炼需求,功能重整,这是产品经理对产品需求的管理。需求核心的把握产品经理对需求的提炼及对功能确定的根本。
3)产品项目管理
产品经理是产品的直接接口人,同也是产品关系最密切的人,不论是UED、开发、测试等都是产品经理的直接面对人。产品项目管理需要进行多方面的协调,产品经理做的就是桥梁,同时对于产品的控制,进度的控制,质量的控制,人员的控制等,产品经理做的是一个产品,产品从无到有,再到它被市场淘汰,整个产品过程,产品的项目管理,注重的过程,看更多的产品经理想看的是结果,控制好产品项目管理,结果让用户去骂吧。
4)产品生命周期管理
每个产品都有生命,有它形成、成长、成熟、衰退这样的周期。所有的产品都有这样的周期,产品经理对于产品生命周期的管理直接影响着这个产品在市场上的口碑及市场地位,没有永远的胜者,产品经理可以是屠夫,当不再适合产品发展时,要有果断的“宰杀”自己的产品的勇气,将不能落地的idea“扼杀”于摇篮里。
5)产品品牌管理
一个产品经理如何将产品打造成一个品牌?如何让用户使用时记起这款产品经理是你?这对于很多产品经理来说是非常不可思议的一件事,乔布斯做到了,而更多的时候我们希望我们亲手做出来的产品让最多的用户去使用,而没形成品牌意识,但对于一个企业来说,产品代表着企业,企业有个让人随时记起的品牌产品这体现产品的成功,同时也是企业的成功。产品经理对于产品的品牌意识更多的维护,如何创造品牌这也将是产品经理职业发展中的一个重要环节。

产吕经理不是一个光靠嘴说话的忽悠,需要掌握的东西很多,产品经理的“通”只是方法和过程,“专”才是方向和目的。 产品经理的“通”应该是业务知识上的要求,“专”则是职位专业上的要求。 产品经理应该是既“通”又“专”的真正复合型的人才才对。同时对于软件类的掌握更是必须的,不一定要你懂技术,但一定要学会用软件、图表将自己的产品意识表达清楚。

产品经理的路每个人走法不同,对于产品经理的认识也不同,培养良好的产品经理素质,做一名优秀的产品经理。

 

posted @ 2011-03-29 20:35 yongwnet 阅读(38) 评论(0) 编辑

1..NET编写的WebService源码

 

代码
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<SoapDocumentService(RoutingStyle:=SoapServiceRoutingStyle.RequestElement)> _
Public Class Service1
    
Inherits System.Web.Services.WebService

    
<WebMethod()> _
   
Public Function HelloWorld(ByVal para_in1 As StringByVal para_in2 As StringAs String
        
Try
            
Dim s As String = "para_in1:" & para_in1.ToString() & ",para_in2=" & para_in2 & vbCrLf
            My.Computer.FileSystem.WriteAllText(
"c:\ws.txt", s, True)
            
Return s
        
Catch ex As Exception
            My.Computer.FileSystem.WriteAllText(
"c:\ws.txt""ex:" & ex.ToString() & vbCrLf, True)
            
Return ex.ToString()
        
End Try
        
Return "NO"

    
End Function
End Class

 

 

2.JAVA调用源码:

 

代码
import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;


public class myMain2 {

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args) {
        
// TODO 自动生成方法存根
        InvokeWebservice();
    }
    
    
public static void InvokeWebservice()
    {
        
try
        {
            
/**说明:
               
               
http://127.0.0.1:4727/Service1.asmx    表示Dotnet的WebService地址
               
http://tempuri.org/     表示命名空间
               HelloWorld             表示调用的函数名
               para_in1                表示 HelloWorld 函数的第一个参数名
               para_in2                表示 HelloWorld 函数的第二个参数名
               
               另:本源码需要引用三个JAR包(axis.jar, jaxrpc.jar, commons-discovery-0.2.jar);
             * 
*/        
            
            String endpoint 
= "http://127.0.0.1:4727/Service1.asmx";
                
            Service service 
= new Service();
    
            Call call 
= (Call) service.createCall();
    
            call.setTargetEndpointAddress(
new java.net.URL(endpoint));            
                    
            call.addParameter(
new QName("http://tempuri.org/","para_in1"), org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
            call.addParameter(
new QName("http://tempuri.org/","para_in2"), org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
            call.setReturnType(org.apache.axis.Constants.XSD_STRING);
     
            call.setOperationName(
new QName("http://tempuri.org/","HelloWorld"));
            call.setUseSOAPAction(
true);
            call.setSOAPActionURI(
"http://tempuri.org/HelloWorld"); 

            String para_in1 
= "Java_Invoke_DotnetWebservice";
            String para_in2 
= "2011-01-21";
            String s 
= (String)call.invoke(new Object[]{para_in1, para_in2});
    
            System.out.println(
"result is " + s);
            
        }
        
catch (Exception e) 
        {            
            System.err.println(e.toString());
            e.printStackTrace(); 
        }    
    }
    
}

 

 

实例下载: Java_Invoke_DotnetWebservice.rar

 

posted @ 2011-01-21 16:09 yongwnet 阅读(78) 评论(1) 编辑
Java SDK 1.3以后实现了Robot类。此类用于为测试自动化、自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件。Robot 的主要目的是便于 Java 平台实现自动测试。
使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove 将实际移动鼠标光标,而不是只生成鼠标移动事件。
Robot中主要的鼠标和键盘控制方法有:

  • void keyPress(int keycode) 按下给定的键。
  • void keyRelease(int keycode) 释放给定的键。
  • void mouseMove(int x, int y) 将鼠标指针移动到给定屏幕坐标。
  • void mousePress(int buttons) 按下一个或多个鼠标按钮。
  • void mouseRelease(int buttons) 释放一个或多个鼠标按钮。
  • void mouseWheel(int wheelAmt) 在配有滚轮的鼠标上旋转滚轮。

下面就让我们来实战鼠标控制,实现一个简单的鼠标控制程序MouseController。程序功能很简单:随机移动鼠标并点击左键。

代码如下:

import java.awt.AWTException;

import java.awt.Dimension;

import java.awt.Robot;

import java.awt.Toolkit;

import java.awt.event.InputEvent;

import java.util.Random;


/**

*

* @author Xiaofeng Wang

*/

public class MouseController implements Runnable {

private Dimension dim;

private Random rand;

private Robot robot;

private volatile boolean stop = false;

/** Creates a new instance of Main */

public MouseController() {

dim = Toolkit.getDefaultToolkit().getScreenSize();

rand = new Random();

try {

robot = new Robot();

} catch (AWTException ex) {

ex.printStackTrace();

}

}


public void run() {

while(!stop) {

int x = rand.nextInt(dim.width);

int y = rand.nextInt(dim.height);

robot.mouseMove(x, y);

robot.mousePress(InputEvent.BUTTON1_MASK);

try {

Thread.sleep(3000);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

}

}

public synchronized void stop() {

stop = true;

}

/** * @param args the command line arguments */

public static void main(String[] args) {

MouseController mc = new MouseController();

Thread mcThread = new Thread(mc);

System.out.println("Mouse Controller start");

mcThread.start();

try {

Thread.sleep(60000);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

mc.stop();

System.out.println("Mouse Controller stoped");

}

}

当然键盘映射也类似,无非是使用void keyPress(int keycode)。

现 在实现了控制鼠标和键盘,接下了我们要获取操作后的效果(屏幕截图)。好在Robot类也提供了一个方法:BufferedImage createScreenCapture(Rectangle screenRect);可以直接将全屏幕或某个屏幕区域的像素拷贝到一个BufferedImage对象中。

好,下面实战使用robot截屏,实现Capture程序,每隔1秒截屏一次。

代码如下:

public class Capture extends javax.swing.JFrame implements Runnable {

/** Creates new form Capture */

public Capture() {

initComponents();

try {

robot = new Robot();

} catch (AWTException ex) {

ex.printStackTrace();

}

dim = Toolkit.getDefaultToolkit().getScreenSize(); }

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

// <editor-fold desc=" 生成的代码 " defaultstate="collapsed"></editor-fold>

private void initComponents() {

screenCanvas = new java.awt.Canvas();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

stop = true;

setResizable(false);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(screenCanvas, javax.swing.GroupLayout.PREFERRED_SIZE, 519, javax.swing.GroupLayout.PREFERRED_SIZE) );

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(screenCanvas, javax.swing.GroupLayout.PREFERRED_SIZE, 434, javax.swing.GroupLayout.PREFERRED_SIZE)

);

pack();

}//

/** * @param args the command line arguments */

public static void main(String args[]) {

final Capture capture = new Capture();

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

capture.setVisible(true);

}

});

Thread cutThread = new Thread(capture);

cutThread.start();

}

public void run() {

stop = false;

while(!stop) {

BufferedImage bImage = robot.createScreenCapture(new Rectangle(dim.width, dim.height));

Graphics g = this.screenCanvas.getGraphics();

g.drawImage(bImage, 0, 0, this);

try {

Thread.sleep(1000);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

}

}

private synchronized void stop() {

stop = true;

}

// 变量声明 - 不进行修改

private java.awt.Canvas screenCanvas;

// 变量声明结束

private volatile boolean stop;

private Robot robot;

private Dimension dim;

}

posted @ 2010-10-11 22:35 yongwnet 阅读(76) 评论(0) 编辑

方法一:(安装后的注册升级)

1 打开“控制面板--程序和功能”
2 找到“Microsoft Visual Studio Team System 2008 专业版-简体中文”,右击-- 卸载/更改;(不同版本名称可能不同)
3 进入vs2008维护模式,加载完安装组件之后点下一步,即,出现“添加或删除功能”,“修复/重新安装”,“卸载Microsoft Visual Studio 2008” 界面,停在此界面,继续下面的操作;
4 打开补丁程序(要用管理员身份运行,不然,它没有任何反映),点击“升级”按钮 ,稍等片刻,再回到卸载界面,即可看到XP下的“注册码输入框和升级按钮”。

(点击下载:注册用的小补丁程序)

 

方法二:(安装前准备)

1 用虚拟光驱(PowerISO)修改VS2008ISO安装文件:到这个目录下找setup\ setup.sdb 文件
2 用记事本打开 找到 [Product Key] 一项,并替换序列号为 PYHYPWXB3BB2CCMV9DX9VDY8T,最后保存,再安装.


 

posted @ 2010-09-23 09:48 yongwnet 阅读(95) 评论(0) 编辑
摘要: 很多人不敢马上升级到 Windows7 除了部分硬件配置较低外,另一个最主要的原因就是怕 Windows7 的兼容性不能很好的运行现在一些只能在 XP 中才能正常使用的软件了。 其实在 Windows7 的专业版或旗舰版中,微软已经给我们提供了一个叫做 Windows XP Mode 的功能!它可以轻松地从 Windows 7 上直接运行多一个 Windows XP SP3 的操作系统,你可以安装...阅读全文
posted @ 2010-08-07 18:16 yongwnet 阅读(59) 评论(0) 编辑
摘要: 在当今信息时代,IT技术的飞速发展,使社会发生了巨大变化。计算机技术和互联网络的广泛应用,极大地推动了社会发展、国家强盛。同时也进一步加剧了行业竞争的激烈程度。   近几十年来,项目管理已成为一个热门的话题,它的广泛应用,是管理史上的一次飞跃。项目管理是一门艺术,一门综合了多学科的艺术,是应用领域专业知识、通用管理技能,以及沟通能力等相互融合后的综合管理。对企业管理、工程建设等有着非常重要的意义。...阅读全文
posted @ 2010-07-15 21:46 yongwnet 阅读(33) 评论(0) 编辑
摘要: Java的多态性 面向对象编程有三个特征,即封装、继承和多态。 封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。 继承是为了重用父类代码,同时为实现多态性作准备。那么什么是多态呢? 方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关...阅读全文
posted @ 2010-07-15 21:33 yongwnet 阅读(49) 评论(0) 编辑
摘要: import java.util.StringTokenizer;   /** *//**  *  * @author bulktree Email: laoshulin@gmail.com  * @date Jul 31, 2008  */  public class SplitTest {  public static void main(String[] args) {  SplitTest...阅读全文
posted @ 2010-07-15 21:19 yongwnet 阅读(28) 评论(0) 编辑
摘要: java中的类是动态加载的,我们先看一下我们常用的类加载方式,先有一个感性的认识,才能进一步   深入讨论,类加载无非就是下面三种方式。  class A{}  class B{}  class C{}  public class Loader{  public static void main(String[] args) throws Exception{  Class aa=A.class;...阅读全文
posted @ 2010-07-15 21:15 yongwnet 阅读(44) 评论(0) 编辑