您好,欢迎光临有路网!
Java基础程序设计
QQ咨询:
有路璐璐:

Java基础程序设计

  • 作者:吴正江 张浩 郑浩
  • 出版社:科学出版社
  • ISBN:9787030375650
  • 出版日期:2013年06月01日
  • 页数:323
  • 定价:¥47.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书以Java
    SE核心技术为支点,全书共分为9章,主要内容包括Java概论与Eclipse使用方法,Java基础语法,类、对象与接口,异常处理,常用类简介,集合框架,I/O系统,多线程技术,GUI编程。每章后附有习题,并按章节设定相应实验。全书内容丰富、通俗易懂。
    本书可作为普通高等院校本、专科Java语言程序设计课程的教学用书,也可作为计算机等级及计算机培训班等相关Java课程的教材和参考书,还可以作为有关工程技术人员的工具参考书。 Java基础程序设计_吴正江,张浩,郑浩,赵龙德_科学出版社_
    文章节选
    第1章
    Java语言基础<br>本章内容:<br>在本章中,介绍了面向对象(Object-Oriented,OO)的程序设计思想、Java语言历史及特点、Java面向对象程序设计,以及Java开发环境搭建和Java开发工具Eclipse。<br>学习目标:<br>?
    了解面向对象程序设计思想<br>? 了解Java发展历史及特点<br>?
    掌握Java开发环境搭建<br>? 了解主流的Java开发工具<br>?
    掌握Eclipse的安装配置<br>1.1 面向对象编程<br>1.1.1
    面向对象的程序设计思想<br>面向对象(Object-Oriented,OO)是一种程序设计的思想,它起源于Kisten
    Nygaard和Ole Johan
    Dahl于20世纪60年代开发的Simula语言,然而真正的面向对象编程(Object-Oriented
    Programming,OOP)由20世纪70年代初Palo Alto研究**的Alan
    Kay所在的研究小组开发出的Smalltalk语言奠基。正是通过Smalltalk的研制与推广应用,使人们注意到面向对象方法所具有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处,这些优异特性为研制大型软件、提高软件可靠性、可重用性、可扩充性和可维护性提供了有效的手段和途径。<br>Smalltalk对后来出现的面向对象语言,如Object-C、C++等都产生了深远的影响。与此同时,随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。由于面向对象编程也是Java编程语言的核心,因此在系统地学习Java语言之前,需要首先对面向对象的程序设计思想有一个初步的了解,并且在以后的学习过程中要不断地深入理解并掌握面向对象的程序设计思想。那么,什么是面向对象编程呢?它具有什么样的优势呢?<br>面向对象编程是将客观事物看做具有状态和行为的对象,并通过抽象找出同一类对象的共同状态(静态特征)和行为(动态特征),然后构成类的一种程序设计思想。这里需要指出的是,对象是现实世界中随处可见的人、事、物体等多种实体,如天上飞的鸟、地上走的人、水里游的鱼等,即现实世界中的一切事物皆是对象。对象具有的状态和行为即对象自身具有的结构。在面向对象编程中,对象是类的实例,类是用来创建对象的模板。例如,你和我作为对象,都是人(Person)这个类的实例,而且都具有一些共同的状态属性,如姓名、籍贯、身高、年龄和体重等许多属性。同时我们每一个人还具有一些说话、工作、吃饭、睡觉、读书、写字等行为。然而,我们每一个人之所以都是****的,是因为我们每个人的这些属性都有特定的值。<br>在Java程序中,所有对象都是由类创建的。一个Java程序中的类主要包括以下两部分:<br>(1)类的声明。<br>(2)类的主体。<br>在Java中定义上文Person类的部分代码如下:<br>//代码1-1<br>class
    Person{<br> String name; //
    定义姓名成员变量<br> String nativePlace; //
    定义籍贯成员变量<br> String height; //
    定义身高成员变量<br> String age; //
    定义年龄成员变量<br> String weight; //
    定义体重成员变量<br><br> //
    …<br><br> public void Talk() { //
    定义说话行为<br> //
    …<br> }<br><br> //
    …<br> public void Eat() { //
    定义吃饭行为<br> //
    …<br> }<br>}<br>1.1.2
    面向对象编程的主要特征<br>在面向对象程序设计方法出现以前,人们都是采用以事件为**的面向过程(Procedure-Oriented,PO)编程方法。面向过程编程方法的主要思路是按功能将程序结构划分为若干个基本模块,这些模块功能上相对独立,模块之间关系尽可能简单,并依照自顶向下、逐步求精的原则实现形成树状结构的各个模块。虽然面向过程的编程方法具有很多优点,但是它把数据和处理数据的过程分离为相互独立的实体,一旦数据结构发生改变,将导致所有相关程序都有修改,使得程序可重用性差。所以,相对于面向过程程序设计方法,面向对象程序设计方法具有以下主要特征和优势。<br>1)封装性<br>封装是一种信息隐蔽技术,是面向对象编程的核心思想之一。封装使数据和加工该数据的方法封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性,而对象的内特性对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,有效避免了外部错误对内部数据的影响,实现了错误局部化。同时当一个对象的内部结构或实现方法改变时,由于只要保持对象的接口不改变,就不用改变程序的其他部分,从而提高了程序的可维护性。<br>2)继承性<br>继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个子类可以直接继承其父类的全部描述,同时还可修改和扩充。继承具有传递性。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,若没继承性机制,则类对象中的数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。<br>3)多态性<br>对象根据所接收的消息而做出动作,同一消息被不同的对象接收时可产生完全不同的行动,这种现象称为多态性。在面向对象编程中可通过在派生类中重定义基类函数来实现多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接收消息的对象自行决定,也就是说,同一消息可调用不同的方法。例如,Print消息被发送给一个图或表时所调用的打印方法与将同样的Print消息发送给一文本文件所调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。<br>综上可知,在面对对象方法中,类和继承是适应人们一般思维方式的描述范式。通过继承可以大幅减少冗余的代码,方便地扩展现有代码,提高编码效率,降低出错概率,降低软件维护的难度。通过保持外部接口不变的情况下改变内部实现,减少甚至避免外界的干扰。<br>1.2
    Java程序设计语言概述<br>Java是由Sun
    Microsystems公司于1995年5月推出的面向对象程序设计语言。Sun公司在《Java白皮书》中这样对Java进行定义:Java:A
    simple, object-oriented, distributed, interpreted, robust, secure,
    architecture-neutral, portable, high-performance, multi-threaded,
    and dynamic
    language。即Java是一种简单的、面向对象的、分布式的、解释型的、健壮的、**的、结构中立的、可移植的、高性能的、多线程的动态语言。Java语言具有**的跨平台特性,所编译的程序能够在多种操作系统上运行,即“一次编写,到处运行(Write
    Once,Run Anywhere)”。<br>1.2.1
    Java发展历史<br>Java语言源于Oak语言,这是Sun公司在一项消费性电子产品软件发展方案中采用的语言。Oak的设计目标是用以开发可靠、紧凑、易于移植的分布式嵌入系统。尽管Oak语言在技术上颇为成功,但由于商业上的原因,却未能在市场的激烈竞争中站稳脚跟。然而,Internet和WWW日新月异的发展却为Oak创造了新的生存空间。之后,Games
    Gosling对Oak进行了小规模的改造,成为一种非常适合网络开发的独特语言,这就是在1995年5月23日诞生的Java。Java的诞生标志着互联网时代的开始。由于Java恰逢其时地诞生于Internet和WWW蓬勃发展的时期,经过多年的蓬勃发展,致使如今的Java与当初的Oak语言已不可同日而语,使得它逐渐成为Internet上受欢迎的开发与编程语言,一些闻名的计算机公司纷纷购买了Java语言的使用权,如Microsoft、IBM、Netscape、Novell、Apple等。而且Sun公司采用了一种“开放”策略,将Java技术公之于众,更激发了第三方软件开发商的极大热情,纷纷发展Java技术,因此Java的前景是非常广阔的。<br>Java的主要发展历史简述如下:<br>1995年5月23日,Java语言诞生。Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性极强的Applet程序,而1995年的Applet无疑能够给人们无穷的视觉和脑力震荡。其实Java的诞生颇有那么一股“有心栽花花不开,无心插柳柳成荫”的味道。<br>1996年1月,**个JDK1.0诞生。<br>1996年2月,Sun发布Java芯片系列,包括picoJava、microJava和UltraJava。并推出Java数据库连接JDBC数据库API。<br>1996年4月,10个*主要的操作系统供应商声明将在其产品中嵌入Java技术。<br>1996年5月,Sun在大会上推出一系列Java平台新技术,如JavaMediaAPIs、CommerceAPIs、SecurityAPIs、ServeletAPIs、ManagementAPIs等。<br>1996年9月,约8.3万个网页应用了Java技术来制作,同时推出Java虚拟机规范和Java类库。<br>1996年10月,Sun完成JavaBeans规范并发布,并发布**个JavaJIT(Just-In-Time)编译器。<br>1997年2月18日,JDK1.1发布,它蕴藏着新的翻天覆地的革命。在JDK1.1时代,Java平台分为PersonalJava与EmbeddedJava。PersonalJava比较适用于运算资源和内存丰富的设备,而EmbeddedJava适用于资源有限的设备。<br>1998年12月8日,Sun发布了Java历史上*重要的一个JDK版本,即JDK1.2。这个版本标志着Java已经进入Java2时代,这个时期也是Java飞速发展的时期。JDK1.2分成J2EE、J2SE和J2ME三大块,得到了市场的强烈反响。相对于之前的JDK,JDK1.2增加了*吸引眼球的Swing。<br>2000年5月8日,JDK1.3发布。在JDK1.3时代,**个稳定版本的Tomcat3.x得到了广泛的应用,WebLogic等商业应用服务器也渐渐被接受。<br>2002年2月26日,JDK1.4发布。由于Compaq、Fujitsu、SAS、Symbian、IBM等公司的参与,使得JDK1.4发展很快。在此时间,.NET平台和Java平台之间曾经发生了一次声势浩大的孰优孰劣的论战,焦点在于Java的性能问题。<br>2004年9月30日18点,J2SE1.5横空出世,这是Java语言发展史上的里程碑事件。为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0。此版本增加了诸如泛型、增强的for语句、可变数目参数、注释、自动拆箱和装箱等功能,推出了EJB3.0规范及JSF等。利用JSF可以很快地建立起复杂的JSP界面。<br>2005年,J2EE更名为Java
    EE,J2SE更名为Java SE,J2ME更名为Java ME。<br>2006年12月,发布了Java
    SE6.0。此版本不仅在性能、易用性等方面得到了****的提高,而且还提供了如脚本、全新的API的支持。<br>2009年4月20日,Oracle公司并购了Sun公司。<br>2011年7月28日,Oracle正式发布Java
    7。这是自2006年12月Sun发布Java SE
    6以来的**重要版本,也是Sun被Oracle收购以来发行的**个版本,包含了Java诞生以来*大的改进。<br>现在,Java已经成为开发和部署企业应用程序的**语言。Java
    2的计算平台以Java语言为**,其体系结构与平台无关。目前,它有三个独立的版本。<br>1)Java
    SE<br>Java技术标准版(Java Standard Edition)。Java
    SE主要针对包含丰富的GUI(图形用户界面)、复杂逻辑和高性能的桌面应用程序。<br>2)Java
    EE<br>Java技术企业版(Java Enterprise Edition)。Java
    EE是一个标准的多层体系结构,适用于开发和部署分布式、基于组件、**可靠、可伸缩和易于管理的企业应用程序,以减少开发分布式应用程序的复杂性和代价,简化开发和部署过程。Java
    EE体系结构将一个企业应用程序分隔为客户层、表示层、业务层和数据层。以服务器端程序和企业软件的开发为目标。<br>3)Java
    ME<br>Java技术微型版(Jave Micro
    Edition)。它是针对具有有限的连接、内存和用户界面能力的设备应用程序而设计,如移动电话、PDA、互联移动设备、嵌入式设备、能够接入电缆服务的机顶盒等。<br>1.2.2
    Java语言特点<br>Java语言具有鲜明的特点,使它在分布式网络应用、多平台应用、图形用户界面、Web应用、多线程应用等软件的开发中成为方便**的工具。下面简要进行介绍。<br>(1)开发和使用简单性。Java的语法风格非常近似于C++语言,但删改了C++中的指针、操作符重载等一些易混淆的地方。在内存管理方面又提供了垃圾收集机制。这使程序员可以在实现程序功能方面投入更多的精力,而无须考虑诸如内存释放等枝节问题。C++中复杂而灵活的指针操作往往导致严重的错误,一向是开发调试人员深感棘手的问题,而这在Java中却不存在。Java虚拟机还能为程序链接本地甚至远程的类库,开发人员不必关注其细节。<br>(2)分布式。Java对TCP/IP协议(如HTTP、FTP)的支持使Java程序可以轻易地建立网络连接,并通过统一资源定位器(Uniform
    Resource
    Locator,URL)访问远程文件,如同访问本地文件一样方便。Java的运行时系统能动态地通过网络装入字节码,动态使用新的协议控制软件。<br>(3)面向对象性。Java对面向对象的要求十分严格,不允许定义独立于类的变量和方法。Java以类和对象为基础,任何变量和方法都只能包含于某个类的内部。这就使程序的结构更为清晰,为继承和重用带来便利。Java
    提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类。Java
    提供的Object
    类及其子类的继承关系如同一棵倒立的树。根类为Object类,Object类功能强大,经常会使用到它及其派生的子类。<br>(4)**性。对于网络应用来说,这一点是极为重要的。Java将**性作为**考虑,设置了层层防范。首先在编译时进行语法、语义的检查。链接时,还要再进行一遍编译级的类型检查,消除间接对象访问。运行时,Java的运行时系统将进行字节码检验,并记录对象的存储情况,将访问限制在**范围之内。本地的类与远程的类分开运行,阻止远程系统对本地系统的破坏。支持Java的浏览器还允许用户控制Java软件对本地系统的访问。各种措施的综合使Java程序的**性得到保证。<br>(5)平台独立性和可移植性。Java的应用程序接口(API)和运行时系统是可移植性的关键。Java为支持它的各种操作系统提供了一致的API。在API界面上,所有Java程序将都不依赖于平台。Java的运行时系统在解释执行程序时,将字节码转化为当前机器的机器码。程序开发人员无须考虑使用应用时的硬件条件和操作系统结构,用户只需有Java的运行时系统,就可运行编译过的字节码。<br>(6)多线程。Java提供了内置的多线程支持,程序中可以方便地创建多个线程,各个线程执行不同的工作,这使程序工作更为简单。例如,用不同的线程分别控制声音和图像,可以轻易构筑声像交织的复杂效果,而编程时只要分别安排各线程的工作,不必关心它们的合作,这也大大促进了程序的动态交互性和实时性。为了控制各线程的动作,Java还提供了线程同步机制。这一机制使不同线程在访问共享资源时能够相互配合,保证数据的一致性,避免出错。<br>(7)解释执行。Java程序经过编译形成字节码,然后在虚拟机上解释执行。这是Java程序能够独立于平台运行的基础。这也使程序有利于增量链接,从而加快开发过程。<br>(8)健壮性。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。Java致力于检查程序在编译和运行时的错误。Java的**检查机制使得Java更具健壮性,能够帮助检查出许多开发早期出现的错误。<br>1.3
    Java开发环境搭建<br>工欲善其事,必先利其器。学习编程语言也一样,首先得搭建好编程学习环境。任何一门语言的学习之初,都应该搭建好环境且准备好学习文档,在遇到任何问题时能够及时查询文档,在不断的遇到问题、解决问题中成长。针对学习Java而言,其开发环境包括下载安装Java开发包(Java
    SE Development Kit,JDK)和配置环境变量。
    目录
    前言
    第1章 Java语言基础
    1.1 面向对象编程
    1.1.1 面向对象的程序设计思想
    1.1.2 面向对象编程的主要特征
    1.2 Java程序设计语言概述
    1.2.1 Java发展历史
    1.2.2 Java语言特点
    1.3 Java开发环境搭建
    1.3.1 下载JDK
    1.3.2 安装JDK
    1.3.3 环境配置和测试
    1.4 Java集成开发环境
    1.4.1 Eclipse简介
    1.4.2 Eclipse安装配置
    1.4.3 利用Eclipse编写Java程序步骤
    小结
    习题
    第2章 Java基础语法
    2.1 Java应用程序
    2.1.1 如何开始你的**个程序
    2.1.2 如何输出
    2.1.3 常见错误
    2.1.4 万事皆对象
    2.2 标识符、关键字与注释
    2.2.1 标识符
    2.2.2 关键字
    2.2.3 注释
    2.3 Java数据类型
    2.3.1 基础数据类型
    2.3.2 变量
    2.3.3 语句与变量的生命周期
    2.3.4 常量
    2.3.5 转义字符
    2.4 运算法与表达式
    2.4.1 运算符的优先级与结合性
    2.4.2 算术运算符
    2.4.3 关系运算符
    2.4.4 逻辑运算符
    2.4.5 条件运算符
    2.4.6 按位运算符
    2.4.7 移位运算符
    2.4.8 赋值运算符
    2.4.9 类型转换
    2.5 控制结构
    2.5.1 顺序结构
    2.5.2 选择结构
    2.5.3 循环结构
    2.6 方法
    2.6.1 方法概述
    2.6.2 简单的方法定义与调用
    2.7 枚举
    小结
    习题
    第3章 类、对象与接口
    3.1 面向对象的程序设计概述
    3.1.1 面向对象程序设计方法概述
    3.1.2 面向对象程序设计方法的原则
    3.1.3 面向对象程序设计的特点
    3.2 类与对象
    3.2.1 建立Java中的类
    3.2.2 建立引用类型变量、对象及它们之间的关联
    3.2.3 访问对象中的成员
    3.2.4 类定义中的多态——重载
    3.2.5 类定义中的其他问题
    3.3 继承
    3.3.1 继承的功能
    3.3.2 继承的定义
    3.3.3 成员的隐藏和重写
    3.3.4 引用类型的转型
    3.3.5 继承中的构造方法
    3.4 抽象类
    3.4.1 抽象类的功能
    3.4.2 抽象类的定义
    3.5接口
    3.5.1接口的作用
    3.5.2接口的定义
    3.5.3接口的使用
    3.6 多态
    3.6.1 多态的概念
    3.6.2 重载与多态
    3.6.3 重写与多态
    3.7 内部类
    3.7.1 成员内部类
    3.7.2 局部内部类
    3.7.3 静态内部类
    3.7.4 匿名内部类
    小结
    习题
    第4章 异常处理
    4.1 异常基础
    4.2 异常类型
    4.3 异常处理
    4.3.1 主动处理异常——关键字try、catch、finally
    4.3.2 被动处理异常——关键字throws
    4.4 异常主动抛出
    4.5 自定义异常
    小结
    习题
    第5章 常用基础类库
    5.1 包
    5.1.1 包的概念
    5.1.2 包的创建
    5.1.3 包与目录
    5.1.4 包的引用
    5.1.5 包与访问权限
    5.2 Object类
    5.2.1 toString()方法
    5.2.2 equals()方法
    5.3 基本数据类型包装类
    5.3.1 自动装箱与拆箱
    5.3.2 自动装拆箱注意事项
    5.4 字符串类
    5.4.1 String类
    5.4.2 StringBuffer类
    5.4.3 StringBuilder类
    5.5 Calendar类与Date类
    5.5.1 Calendar类
    5.5.2 Date类
    5.6 Math类
    小结
    习题
    第6章 集合框架
    6.1 数组
    6.1.1 一维数组
    6.1.2 二维数组
    6.1.3 三维数组及三维以上数组
    6.1.4 Arrays类
    6.2 容器类
    6.2.1 Collection接口
    6.2.2 List接口
    6.2.3 Set接口
    6.2.4 Map接口
    6.2.5 Collections类
    6.2.6 Java对象集合的遍历
    6.3 泛型
    6.3.1 泛型的概念和作用
    6.3.2 泛型接口和泛型类
    小结
    习题
    第7章 I/O系统
    7.1 I/O系统概述
    7.1.1 流的概念
    7.1.2 流的分类
    7.2 文件的处理
    7.2.1 File类
    7.2.2 文件节点输入/输出流
    7.2.3 文件处理输入/输出流
    7.2.4 数据、对象的输入/输出流
    7.3 标准流
    7.3.1 System.out
    7.3.2 System.in
    7.4 其他流简介
    7.4.1 文件随机存取流
    7.4.2 打印流
    7.4.3 内存流
    7.4.4 线程流
    7.4.5 压缩流
    小结
    习题
    第8章 多线程
    8.1 线程简介
    8.1.1 进程与线程
    8.1.2 线程生命周期及其状态转换
    8.1.3 线程优先级与线程调度
    8.2 多线程的实现
    8.2.1 Thread类
    8.2.2 Runnable接口
    8.3 线程管理
    8.3.1 创建
    8.3.2 终止
    8.3.3 同步
    8.3.4 通信
    8.3.5 中断与阻塞
    8.3.6 死锁
    小结
    习题
    第9章 图形用户界面
    9.1 GUI概述
    9.1.1 Java基础类
    9.1.2 AWT工具包
    9.1.3 Swing工具包
    9.2 Swing容器
    9.2.1 Swing容器层次
    9.2.2 JFrame框架窗口
    9.3 颜色、字体和图形
    9.3.1 Color类
    9.3.2 Font类
    9.3.3 Graphics类
    9.4 Swing基本组件
    9.4.1 标签
    9.4.2 按钮
    9.4.3 文本框
    9.4.4 文本域
    9.4.5 复选框和单选框
    9.5 布局管理器
    9.5.1 流布局管理器
    9.5.2 边界布局管理器
    9.5.3 网格布局管理器
    9.5.4 网格包布局管理器
    9.5.5 容器嵌套
    9.6 事件驱动设计
    9.6.1 委托事件模型
    9.6.2 事件类
    9.6.3 ActionEvent类
    9.6.4 KeyEvent类
    9.6.5 MouseEvent类
    9.6.6 WindowEvent类
    9.7 Swing其他常用组件
    9.7.1 列表
    9.7.2 JComboBox组件
    9.7.3 JScrollBar组件
    9.8 对话框的使用
    9.8.1 JDialog对话框
    9.8.2 JOptionPane对话框
    9.8.3 JFileChooser对话框
    9.9 菜单制作
    9.10 观感效果
    9.11 Applet小程序
    9.11.1 Applet的基本工作原理
    9.11.2 Applet生命周期
    9.11.3 Applet与HTML
    小结
    习题
    附录 实验
    编辑推荐语
    《Java基础程序设计》作为Java语言的入门教程,立足于J2SE,对知识进行优化组合,针对无程序设计功底的人群,力争突出**、循序渐进,使读者可以快速掌握核心技术,并为后续学习打下基础。本书由河南理工大学吴正江和毋东、河南农业大学张浩、郑州师范学院赵龙德、平顶山学院郑浩、河南大学刘俊男、河南财经政法大学孙楠、中原工学院窦桂琴8位老师共同合作完成。全书由吴正江统稿。

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外