|
视频课堂:https://edu.csdn.net/course/play/8222
Eclipse的使用
Eclipse的获取与安装
1.下载并安装Eclipse
下载Eclipse的网页是http://www.eclipse.org/downloads/index.php。鉴于令人朝思暮想的Eclipse 3.0 Release于2004年6月25日左右发布,我们这里将采用Eclipse 3.0 M9 Stable Build进行讲解。Windows版本的文件名是Eclipse-SDK-3.0M9-win32.zip,约85.3MB。
安装Eclipse异常简单,把ZIP包中的Eclipse目录解压缩到C盘根目录中即可。
黄糖故事
关于开源软件版本的行话
许多开源软件都有若干约定成俗的版本称谓,好比行当黑话,不了解会吃大亏。
Release:实现承诺的特性,并且通过彻底测试的稳定版本。这种版本一般非常健壮,并且拥有许多可以配合使用的第三方软件,适合开发商业项目。在这篇文章撰写之时,Eclipse的最新Release版本是2.1.3,于2004年3月10日发布。Release相当于Windows正式版。
Stable Build:新的Release版本一般要经过若干个开发周期,在此期间,如果某个版本经过测试相对稳定,开发人员便会把它发布成Stable Build,供渴望尝试新特性的用户在第一时间体验。相当于Beta测试版本的Windows。
Integration Build:当Eclipse开发人员开发出稳定部件时发布的版本,当然不能保证部件之间能够友善合作。如果可以,则将升级为Stable Build发布。不推荐普通用户下载使用。
Nightly Build:每夜构筑的版本,是自动工具每天晚上通过自动编译得到的版本,方便开发者之间交流。这种版本的稳定性没有任何保障,不推荐用户下载使用。
2.启动Eclipse
你必须安装了J2SE 1.4以上的SDK或JRE才能运行Eclipse,具体安装方法请参考《Java咖啡馆(2)——第一杯咖啡》一文。一切就绪后,双击“C:\Eclipse\Eclipse.exe”便能启动Eclipse了。首次启动Eclipse,会让你配置工作区,选择默认即可。
'margin-left:0cm;text-indent:0cm;mso-list:none;tab-stops:21.0pt'>
针对一个银行的取款,分别编写一个面向对象和面向过程的两个程序代码?
|
上回课,我们学习了并实践操作了一个Hello World的例子,大家显然是没有解渴。不过,回过头来有些同学问了。“你写了一大堆,是出字了。不过我不明白是什么意思啊!
这个不用着急。下面我为大家解释一下这段程序。
1 /* 2 简单的 HelloWorld 程序 3 */ 4 public class Hello{ 5 //main方法 6 public static void main (String args[]) { 7 System.out.println ("Hello World!"); //输出字符串“Hello World!” 8 } 9 }
程序中的1-3 行是注释行
/*
简单的 HelloWorld 程序
*/
“/*……*/”是多行注释,而“//”是单行注释的意思。
第4行
声明类名为Hello,保存时要以Classname.java保存。类名(Classname)是在源文件中指明的,源文件编译后可在源代码所在的目录里生成一个classname.class文件。在本例题中,编译器创建了一个称为Hello.class 的文件, 它包含了公共类Hello 的编译代码。
public class Hello{
第5行是一个单行注释
第6行
是程序执行的起始点。Java 技术解释器必须发现这一严格定义的点,否则将拒绝运行程序。C和C++语言,也采用main()做为程序的起点。但是与java有些不同,以后的课程会介绍的。
第7行
声明如何使用类名、对象名和方法调用。它使用由System 类的out 成员引用的PrintStreamout对象的println()方法,将字串“Hello World!”打印到标准输出上。
System.out.println (“Hello World!”);
分号“;”是java语言语句的分隔符
第8-9行
那两个花括号是分别和第4行和第6行的花括号配对
|
1.标识符
程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。例如,identifier,userName,User_Name,_sys_val, $change为合法的标识符,而2mail room#,class 为非法的标识符。
2.保留字
具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为关键字,下面列出了java语言中的所有保留字:
bstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while 。
java语言中的保留字均用小写字母表示。
|
数据类型对于任何一门计算机语言来说都是重要的,因为变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在java语言里,数据类型分为两大类:
一、基本数据类型。
二、复合数据类型(对象数据类型)。
基本数据类型又分4类8种。如下:
u 逻辑型:boolean.
u 文本型:char.
u整型:byte,short,int和long.
u浮点型:double和float.
复合数据类型就有很多种了,他们都是从Object这个类继续下来的。
下面我想重点的讲一个问题:
文字类型的char和String,这两个都是文本类型。但是不同之处,
1、char是基本数据类型,而String不是,但是String是非常有用的。
2、char是一个16位的unicode(国际码)字符,用单引号引上。例如,
char c = ‘100jq’;
String是一个类。字符串在java里是对象。在java SE 5中有三个类可以表示字符串:String,StringBuffer和StringBuilder.StringBuilder是jdk1.5的特性,在jdk1.5之前的版本中没有。字符串要放在双引号中。字符串中的字符也是Unicode .String对象表示的字符串是不能修改的。假如要对字符串修改,应该使用StringBuffer和StringBuilder类。
实践:
public class Assign { public static void main (String args []) { // 声明整数型变量 int x,y; // 声明并赋值给一个单精度浮点数变量 float z = 3.414f; // 声明并赋值给一个双精度浮点数变量 double w = 3.1415; // 声明并赋值给一个布尔类型的变量 boolean truth = true; // 声明字符型变量 char c; // 声明字符串型变量 String str; //声明并赋值给一个字符串型变量 String str1 = "bye"; // 为字符型变量复值 c = 'A'; // 给字符串型变量赋值 str = "Hi out there!"; // 给整型变量赋值 x = 6; y = 1000; } }
错误的赋值举例:
y= 15.454; //y是个整型数
w= 456; //w是个双精度数
将这个程序用上节课的方法,编译执行。就可以看到结果了。
这节课,我们基本了解了java的数据类型的知识。也知道了基本数据类型的概念。但是对象型的数据呢?java是面向对象的语言啊,光靠基本数据类型也无法描述客观的世界啊。因为我们不可能说,桌子、椅子是整数,还是字符。所以对象型的数据类型是非常必要的,也是理解面向对象概念的基础之一。
|
|
面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。
1.对象的基本概念
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。
主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。
2.类的基本概念
把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。
3.消息
消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。服务通常被称为方法或函数。
3.1.2 面向对象的基本特征
1.封装性
封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:
◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。
◇ 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。
封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度。
2.继承性
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如,轮船、客轮;人、大人。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。例如,客轮是轮船和客运工具的特殊类。在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。
3.多态性
对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。
面向对象程序设计方法
OOA-Object Oriented Analysis 面向对象的分析
OOD-Object Oriented Design 面向对象的设计
OOI-Object Oriented Implementation 面向对象的实现
|
计算机要描述的是现实世界。光有基本数据类型,是不能满足我们的需要的。在这个大千世界里,任何东西都可以看做成对象,它们当然不能都是整数和文字了。现在学习java的同学,一般会看到一些java的教程里写的一个日期的例子。这个例子是个典型的例子。你们想啊,日期里面有很多属性啊,像是年,月,日。基本类型的数据就不能很好的描述它。就像是人,是一个类型。人有很多属性,头,躯干,四肢,这样的话,我们就更难用基本类型来描述了。
我们还是看看这个日期的例子吧!
public class MyDate { private int day; //日 private int month; //月 private int year; //年 public MyDate(int day,int month,int year){ this.day = day; this.month = month; this.year = year; } public MyDate(MyDate date) { this.day = date.day; this.month = date.month; this.year = date.year; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } public MyDate addDays(int more_days) { MyDate new_date = new MyDate(this); new_date.day = new_date.day + more_days; return new_date; } public void print() { System.out.println("MyDate: " + day + "-" + month + "-" + year); } }
在上次课的那个例子里我们已经看到了,class要害字后面是个类名。这个类名就是MyDate.MyDate 这个类里面定义了3个属性,4个方法,2个构造函数。因为还没有讲到这些概念,目前说还是有点超前。我还是先来讲些理论的东西。
理论阐述:
类描述了同一对象都具有的数据和行为。Java语言中的类将这些数据和行为进行封装,形成了复合数据类型。创建一个新类,就是创建了一种新的数据类型。在程序中,类只定义一次,而用new运算符可以实例化同一个类的一个或多个对象。比如人是一个类,每一个人就是一个对象。那当然是人定义一次,对象可以new出很多对象了。但是这些具体的人,都具有同样的特征(数据和行为)。
Java的类里面有3个东西,看下面:
class 类名 {
声明属性;
声明构造函数;
声明方法;
}
刚才讲了,类不是要描述现实的数据和行为吗?在这里属性就是要描述封装的数据,方法就是描述行为。构造函数嘛,是在new的运算符后面的,当然是构造对象的了,要不怎么能叫构造函数呢!
顺便说一下,那两个属性的前面有一个private 那是权限修饰符。意思是私有的也就是别人不能用。Java语言用这种权限修饰符实现封装。不想C语言的结构体,都是公有的属性,那样是不安全的。就像是人有五脏六腑,那些东西就是私有的。怎么能让谁都碰呢?这就是面向对象的一个重要的概念叫做封装。面向对象一共有三个重要特征(封装,继续,多态)我们以后会学到的。
所以,刚才MyDate那个类里面,有3个属性 int类型的day,month,year。4个方法setDay(int day),getDay() , addDays(int more_days), print()。还有两个构造函数。
看下面的例子如何调用这个类的方法的:
public class TestMyDate { public static void main(String[] args) { MyDate my_birth = new MyDate(22, 7, 1964); //通过第一个构造函数new了一个叫my_birth的对象,并在参数里面赋值 MyDate the_next_week = my_birth.addDays(7); //这个对象调用了addDays(int more_days)的方法,赋值给the_next_week的变量 the_next_week.print(); //调用print()方法 } } ———————————————— 版权声明:本文为CSDN博主「云和数据.张晨光」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zhangchen124/article/details/51456360
调用一个类的方法,实际上是进行对象之间或用户与对象之间的消息传递。
实践:
1、编译上述两个类 ,直接编译TestMyDate.java就行。还记得怎么做吗?进入DOS界面,到你存放这两个文件的目录下,敲javac TestMyDate.java
2、然后敲 java TestMyDate 就OK了。
观察结果
总结:
今天我们理解了对象类型的数据类型,也知道了对象和对象之间的调用方式。
|
java语言中的两种数据类型:基本类型变量和引用类型变量。
Java中数据类型分为两大类,上次课已经讲完了,是基本类型和对象类型。相应的,变量也就有两种类型:基本类型和引用类型。基本类型自然不用说了,它的值就是一个数字,一个字符或一个布尔值。引用类型,可是引用类型呢?它是一个对象类型的啊,值是什么呢?它的值是指向内存空间的引用,就是地址,所指向的内存中保存着变量所表示的一个值或一组值。很好理解吧,因为一个对象,比如说一个人,不可能是个数字也不可能是个字符啊,所以要想找它的话只能找它的地址了。
我们在学习计算机的过程中,所谓的难的东西,就是以前没有听过的概念,和不常用的思想。像是这个引用类型的概念就是以前不常用的,基本类型当然好理解不讲大家也知道。所以我们对于这样生疏的概念我们只要多琢磨一下就会明白的。
我们废话少说,接下来看看这两种类型变量的不同处理吧。基本类型自然是简单,声明是自然系统就给它空间了。例如,
int baijq;
baijq=250; //声明变量baijq的同时,系统给baijq分配了空间。
引用类型就不是了,只给变量分配了引用空间,数据空间没有分配,因为谁都不知道数据是什么啊,整数,字符?我们看一个错误的例子:
MyDate today;
today.day = 4; //发生错误,因为today对象的数据空间未分配。
那我们怎么给它赋值啊?引用类型变量在声明后必须通过实例化开辟数据空间,才能对变量所指向的对象进行访问。举个例子:
MyDate today; //将变量分配一个保存引用的空间
today = new MyDate(); //这句话是2步,首先执行newMyDate(),给today变量开辟数据空间,然后再执行赋值操作。
小总结:
刚才说了一大堆,其实就是一件事。假如是引用类型的变量,必须先得new一个对象出来。不new哪来的对象啊,不new哪有数据空间啊?没有数据空间怎么能访问呢?这回明白了吧!
我们还有个问题没有说,引用类型变量怎么赋值?这个就不是很难了。
举个例子:
MyDate a,b; //在内存开辟两个引用空间
a = new MyDate();//开辟MyDate对象的数据空间,并把该空间的首地址赋给a
b = a;
|
1. 想象一下,如果我们要使用一个汽车,你如何去操作汽车?可以写出具体的步骤。
2. 你能把现实世界中的常用的事物注入到面向对象的程序里吗?
|
在本章中,我们主要学习了:
u Eclipse的用法u Java的 基本数据类型、标识符、关键字
u Java面向对象的应用
|
你的朋友是个司机,没有学过编程及Java语言;但听说你是Java工程师,对你的职业很感兴趣;他说:“你能不能程序模拟我每天开的汽车,比如:我的车长2.5米,车牌是‘大众’,车胎是‘普利司通’等等。”你能替他用面向对象的思想实现这种设想吗?
参考范例效果如下: