第一章Java简介

目标

1、Java语言

2、Java的特点

3、Java程序的类型

4、Java虚拟机(JVM)

5、Java程序的运行环境



简介:

1.1Java语言的概述

       1995年5月sun Microsystems开发的一门新的编程语言——Java面世。

1.2Java平台无关性

       Java是一种被广泛使用的编程语言,它的主要特点在于,它是一种既面向对象又可跨平台的语言。跨平台是指程序可以跨越多种平台(Microsoft  windows、Apple  Macintosh和Linux等)运行,Java语言实现跨平台实际为每个计算机系统提供了一个叫做Java虚拟机(Java  Virtual Machine ,JVM)

Java的工作原理如下:

Java源程序代码—编译—>>Java字节码(可跨平台)—运行—>>JVM——>>>>windows,Linux,Solaris。

1.3JavaInternet的影响

       Internet使Java成为目前最流行的编程语言,同时Java对Internet的影响也意义深远。Java可以和HTML无缝地集成,把静态的超文本文件变成可执行的应用程序,极大地增强超文本的可交互操作性。Java使用名为Applet的特殊程序解决了这个问题,Applet使Java小应用程序,它可以通过支持Java的浏览器运行。

1.4Java程序的类型

       Java可用来生成两类程序:应用程序(applications)和Java  Applet(小应用程序)。

      1.4.1 Aplet

              Applet是为在Internet上工作而特别创建的Java小应用程序,他们通过Netscape或Internet Explorer(IE)等支持Java的浏览器运行。Applet可以通过任何Java开发工具创建,但它必须被加载并执行。

       1.4.2 应用程序

       应用程序是指在计算机操作系统种运行的程序。用Java创建应用程序与用其他任何计算机语言创建应用程序相似,这些应用程序可以基于GUI或者基于命令行界面。

 

 

1.5Java的开发环境

       bin目录:存放可执行文件

       lib目录:存放Java的类库文件

       demo目录:存放演示程序

       jre目录:存放Java运行环境文件

1.5.1  Java开发工具包

         JDK含有编译、调试和执行用Java语言编写的程序所需的软件和工具,它基本上是一组命令行工具。

       1:javac编译器用于将Java源代码文件编译成字节码。

       2:java解释器用于执行Java字节码。

       3:javadoc用于从程序源代码种抽取类、方法等注释形成一个和源代码配套的API文档。

1.5.2 开发Java程序的步骤

       (1)创建Java源代码

Java源程序一般用java作为后缀名。

       (2)编译器程序成class字节码(bytecode)文件

Java编译器,“javac”,读取Java源程序并将其编译成Java虚拟机能够理解的指令集和,且以字节码的形式保存在文件中。通常字节码文件以class作为扩展名。

           (3)运行class(字节码)文件

Java解释器读取字节码,取出指令并编译成计算机能执行的代码,完成运行过程。

1.5.3 第一个Java程序

public  class  Message{ 
   
              public  static void main (String[]arge){ 
   
                     System.out.println(“欢迎来到Java世界!”); 
   
} 
   
} 
   
/* 
   
*北大青鸟APTECH 
   
*版权所有 
   
*/

 

解释关键字:

Class  Message

以上一行是声明一个名称为Message的新类。



public static  void  mainString[]args

以上一行,就是一个main方法,程序从这里开始执行。所有Java应用程序都必须有一个main()方法。

关键字public是一个访问修饰符,它控制类成员的可见度和作用域。它表示可从程序中任何地方访问类成员:也可以用代码从声名这些成员的类的外部访问类成员。

在此情况下:main()方法必须声名为public,因为飞、当它启动时,它必须能被类外部的代码调用。

关键字static允许调用main()方法,而无需创建类的实例。这是必须的,因为在对象实例化以前,Java解释器将调用main()方法。

在此情况下:即使未创建类的实例,main()方法的一个实例也在内存中。因此,该方法必须为static,它不会返回任何值。

       args[]是String类型的数组。String类型的对象储存字符串。在命令行中可以传递多个参数,这些参数存储在这个String型数组中。在要讨论的程序中,args在程序执行时不接收任何命令行参数,main方法的一对大括号之间的代码称为“方法块”。必须由main()方法执行的语句需要编写在这个块中。一个复杂的程序会有多个类,但只有一个类具有main()方法

System.out.println(“欢迎来到Java世界!!”)

该语句在显示器上显示字符串“欢迎来到Java世界!!”。println()方法在屏幕上输出以参数方式传递给它的字符串。在显示后将添加一个新行。其中的System是一个预定义的类,它提供对系统类的访问,out是连接到控制台的输出流。

1.5.4 编译和运行Message.java程序

在Java中,一个源程序就是一个编译单元。

经过编译将创建的一个名为XXXX..java的文件,该文件就是可以在JVM中运行的Java字节码。

要真正运行该程序,必须使用名叫java的Java解释器。具体做法是把类名XXXX作为一个命令行参数输入,格式为:java  XXXX

1.6  Java虚拟机

编译时:.java(源代码)——>.class(字节码)——>

运行时:类选择器——>字节码校验器——>解释器或JIT代码生成器——>硬件

1.7  Java API文档

Java API文档是一套非常有用的文档,描述了Java的许多内置功能,以及提供个种类的帮助说明。它是程序员最经常查阅的资料。

文档注释以/**开始,并以*/结束。

1.8  Java的特点


1. 简单

Java设计人员删除了C和C++语言中的许多复杂功能。Java中不再存在指针操纵和运算符重载等功能,Java不使用goto语句,也不使用头文件。Struct和Union等结构也已从Java删除。

2. 面向对象

在Java中任何东西都是对象。Java不仅仅将重点放在过程中,而是重点集中在数据以及在应用程序中对数据操作的方法上,Java中,“方法”这一术语使用非常频繁,它被用作表示函数。

3. 健壮性

           Java是一种严格的类型语言。

           Java没有指针和指针运算。

           Java的异常处理功能简化了错误处理和恢复的任务。

4. 安全性

           病毒是计算机界最担心的一件事情。在Java出现前,程序员在下载和执行文件之前必须先扫描文件,

           Javat提供了用于执行程序的受控环境,它从不假定要执行的代码是安全的。由于Java不仅仅是一种编程语言,因此它还提供了多层此的安全控制。

5. 分布式

           Java用于开发可在多个平台、操作系统和图形用户界面之间移植的应用程序。Java是为支持网络应用程序而设计的。因此,Java作为开发工具在像internet这一具有不同平台的环境中得到了广泛应用。

6. 多线程

           Java程序使用一个称为“多线程”的进程同时处理多项任务。Java提供了用于同步多个进程的主要解决方案。这种对线程的内置支持使交互式应用程序能在Internet上顺利运行。

总结:

l       Java是面向对象的跨平台语言

l       Java可用来生成两种程序:应用程序、小应用程序

l       Java字节码是Java虚拟机(JVM)可理解的机器语言指令,通常作为Java语言源代码的编译结果而生成。

l       JDK提供多种工具,这些工具位于JDK的bin目录下,具体为:javac、java、javadoc。

第二章Java语言基础

目标

l      理解数据类型

l      掌握运算符

l      掌握数组

l      运用控制流语句

2.1 概述

2.2 数据类型

2.2.1 原始数据类型

       原始数据类型一次可以存储一个值,因此是最简单的数据形式。

这些数据类型包括:boolean、byte、short、int、long、float、double和char。

2.2.2 引用数据类型

l         数组:具有相同数据类型的变量的集合,例如,学员姓名。

l           变量和方法的集合。例如,Student类包含学员的完整信息以及操作这些信息的方法。

l         接口:一个抽象类,其创建的是为了实现Java中的多重继承。

2.3变量

2.3.1 标识列

编码规范:

                变量名不应该以下划线“_”或“$”符号开头,尽管这在语法上是允许的。第一个单词的首字母小写,其后单词首字母大写。

2.3.2 变量的作用域和生命周期

Java中的变量可以在代码块中的任何地方声明。

局部变量、全局变量

作用域可以嵌套。每次创建一个代码块后,就会创建一个新的嵌套作用域。外层作用域包含内层作用域。也就内层作用域中的代码可使用在外层作用域中声明的变量,反过来却不行。即外层作用域无法使用在内层作用域中的变量

 

 

 

 

2.3.3 类型转换

1、自动类型转换

         必须满足一下条件:

l         两种类型必须兼容,

l         目标类型大于源类型

2、强制类型转换

         float  c = 34.36365f ;

                int b=(int)c+10;

输出结果则是:44

            3、类型提升规则

                     Java具有应用于表达式的多个提升规则,具体包括:

l         所有byte型和short型的值都可提升为int型

l         如果一个操作数为long型,则整个表达式可提升为long型

l         如果一个操作数为float型,则整个表达式可提升为float型

l         如果一个操作数为double型,则整个表达式可提升为double型

  2.4 运算符

           2.4.1 算术运算符

                       +-*/%++--+=-=*=/=%=

           2.4.2 赋值运算符

                      =

           2.4.3 关系运算符

                       ==!=><<=>=

           2.4.4 逻辑运算符

                      &|^!

           2.4.5 条件运算符
                         

           2.4.6 运算符的优先级

           1.括号、2.一元运算符、3.算术运算符和位移运算符、4.关系运算符、5.逻辑运算符和位运算符、6.条件运算符和赋值运算符

           2.4.7 更改优先级次序

                      括号可以用于更改计算表达式的次序,

2.5 控制流语句

           2.5.1  判断语句

l       if-else

l       switch-case

2.5.2        循环语句

l       while循环

l       do-while循环

l       for循环

           2.5.3  跳转语句

                      breakcontinue

                      break语句有3种用法,

l        终止switch语句的语句序列

l        用于退出循环

l        充当goto语句的另一种形式

2.6 数组



方法

说明

语法

示例

仅声明

仅声明数组

dataype identifier[]

char ch [];声明一个名为ch的字符数组

声明和创建

使用保留字”new”声明并为数组元素分配内存

Dataype identifier[]=new datetype [size]

Char ch= new char[10];声明一个数组ch,以存储10个字符

声明、创建和初始化

声明数组,为其分配内存并对其元素赋初始值

Datatype identifier[]={value1,value2,value3};

Char ch[]={‘A’,’B’,’C’};声明一个数组ch,以存储4个预先指定的字符值

2.7 命令行参数


 

 

 

2.8 使用转码序列格式化输出

/n——将光标移动到下一行(称为换行符)

/r——将光标移动到当前行的开头(称为回车符)

/t——将光标移动到下一制表位(称为制表符),一个制表位等于8个空格

//——输出反斜线

/’——输出单引号

/”——输出双引号

 

 

总结

l        Java中的数据类型分为两种:原始数据类型和引用数据类型。

l        变量是存书数据的基本单元

l        数组用于将相同数据类型的多项将、数据存储中连续的内存单元中

l        Java提供各种类型的运算符

l        Java支持用作控制语句的各种变成结构

 

 

 

 

 

第三章        面向对象的概念和Java实现(1)

目标

    理解类和对象

    理解抽象和封装

    理解对象鱼类之间的关系

    掌握在Java中创建类个对象的方法

    掌握创建和导入包的方法

1.      对象

对象具有属性和行为

面向对象编程思想的核心是对象

     定义:

        对象是存在的具体实体,具有明确定义的状态好行为。

     消息传递的定义:

        消息指一个对象为执行特定操作而向另一个对象发送的请求。

2.      类

多个对象所共有的属性个操作需要组合成一个单元,成为‘类’。

     定义:

        类是具有相同属性和共同行为的一组对象的集合。

    类的属性:

       对象的特征在类中表示为成员变量,称为类的属性

   类的方法:

方法是对象执行操作的一种范围。方法指定以何种方式操作对象的数据,是操作的实际实现。

   类与对象的区别

      是用来描述实体的模板或原型,


对象是实际的实体。

第四章                面向对象的概念和Java实现(2)

目标:

l        理解继承和多态

l        掌握访问修饰符

l        运用Java程序实现继承

l        运用接口进行Java编程


4.1        继承

(private关键字)私有使用

父类的数据和方法可用于他的子类,但如果父类的数据和方法声明为私有使用(关键字private),子类则不能访问他们。

使用关键字extends来继承类。

    子类构造方法

子类永远不会继承父类的构造方法。除了构造方法之外,父类的所有方法好属性都由子类的对象继承。

创建子类的对象时,它将会包含父类的所有方法和属性。

父类的值应该正确的初始化。

通过使用关键字super,程序员还可以从子类构造方法中调用父类中的默认构造方法或带参数的构造方法。

4.2        多态性

 

多态性是指“多种形式”,

代码片段1

Shape pentagonObj = new Pentagon();

 

 

4.3        访问修饰符

1.   public(公有)

类的public成员可以被该类的成员和非该类的成员访问。

2.   private(私有)

类的private成员只能被该类的成员访问。

3.   protected(保护)

类的protected成员可以被该类的成员以及其子类的成员访问。

4.4        方法修饰符

1.        static修饰符

方法声明为静态时具有某些限制,具体如下:

l         它们只能调用其他静态方法

l         它们必须只访问静态数据

l         不能使用关键字this或super

2.        final修饰符

用于定义一个不会改变飞类成员,final修饰符可应用于类、方法和变量。final变量的内容不能更改。

当关键字final应用于方法时,它意味着方法不能被重写。

3.        abstract修饰符

当父类中的某些方法不包含任何逻辑并且需要由子类重写,这就应该使用关键字abstract 来声明父类中的方法。

 

4.5        接口

接口就是某个事物对外提供的一些功能的声明。接口的使用者都只需要使用这些功能就可以了。

1、 接口的定义

通过interface关键字。

2、 接口的实现和使用

创建接口时必须牢记一下几点:

l         接口中的所有方法必须是public类型或默认类型。

l         方法仅仅是声明或定义,而不要求去实现。

l         接口可以通过使用关键字extends继承其他接口。

实现接口需要注意的是:

       当一个类实现一个接口时,它必须实现接口中定义的所有方法,否则该类必须声明的抽象类

 

 

 

总结

l         继承允许创建层次结构分类,继承允许重用代码。

l         除了结构方法之外,父类的所有的方法和属性都被子类的对象继承。

l         多态性是各种对象以不同的方式对相同的消息作出响应的能力。

l         方法重载是静态多态性的示例,而方法重写是动态多态性的示例。

l         访问修饰符用来确定如何访问类成员。

l         Java中的一些方法修饰符包括 static、final和abstract。

l         接口可以被多个类实现,一个类也可以实现多个接口,它弥补了Java单一继承的缺点。