java入门到精通
- 格式:doc
- 大小:84.50 KB
- 文档页数:12
韩顺平笔记第1讲内容介绍.项目演示.原理剖析1. 课程包括:面向对象编程,图形界面,数据库编程,文件流,网络编程,的多线程2. 历史:1990 启动绿色计划 1992 创建语言—>1994 参加硅谷大会演示功能震惊世界 1995 正式发布第一个版本,目前最新的是7.03. 开发工具:记事本,,,,4. 包括:(运行环境)的工具:编译器解释执行器的类库:3600多个,常用的150多个5. 第一个程序:功能:显示―‖:表示类是公共的,一个文件中只有一个类 :表示这个是一个类:类名(公共类的类名,必须和文件名一样){一个主函数,程序的入口 ( []) {执行语句("!"); } }6. 源程序(文件)——>字节码文件(文件)——>由解释执行器()将字节码文件加载到虚拟机()——>字节码文件()就会在虚拟机中执行); } }第2讲变量.数据类型1. 在里面占4个字节,占8个字节2. 基本数据类型:整数:(一个字节:-128127 四个字节:-247483647两个字节:-3276832767 八个字节:)小数(浮点):布尔:字符:(两个字节,可以存放汉字, 1 ='中';)引申到字符串(类)3.在中对进行运算的时候,直接是当做码对应的整数4.数据不能从高精度到低精度的转换<<<<<3.4;是过不去的,在中小数默认是(双精度)的应该写成是3.4f;不过可以强制转换:()1.2; ()1.95. 1 1.2; a先是往高精度转换,然后赋给b,就报错改成1 1.2; 或者 1 1.2f; 就解决了第4讲流程控制1. 语句中,条件表达式的数据类型应该和后面的类型一致2. 语句中,可用的数据类型主要是:第5讲类与对象1. 面向对象编程-类与对象类名首字母大写类里面的元素叫类的成员变量/属性2. 类的定义包名;类名父类接口名{成员变量;构造方法;成员方法;}3. 如何创建对象:先声明再创建1;1 ();一步到位 1 ();4. 引用传递类似于指针一样第8讲类变量1. 属于类的对象的而不是属于类的2. 5不能在类的外部使用,只能在类定义时候使用!3. 可以用类名直接访问静态变量第9讲类方法封装1.类变量是该类的所有对象共享的对象,一改全改了2.定义语法:访问修饰符数据类型变量名3. 9{1;{("");;}会自动执行一次,也只有一次9(){("");;}( []){9 t1 9();(9);9 t2 9();(i);}}4.类方法(静态方法、静态函数):属于所有对象实例的5中:类变量()原则上用类方法()去访问;类方法中不能访问非静态变量,就是非类变量,但是普通的成员方法可以访问静态变量(类变量)使用:类名.类方法名对象名.类方法名6.非类变量就是实例变量,属于每个对象自己的7面向对象编程的三(四)大特征:封装、继承、多态(、抽象)8.抽象:把一类事物的共有的属性和行为提取出来,形成一个物理模板,此研究问题的方法就是抽象9.封装:把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。
java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。
不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件(.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释ava文件)2、java编译器即3、java字节码文件(.class文件)4、由解释执行器即将字节码文件加载到java虚拟器(jvm)5、字节码文件(.class)就会在java虚拟机中执行对程序进行改过使之变为一个简单的加法运算程序;.case 常量n:语句n;break;default:语句;break;}*****:switch中的可用数据类型主要是:允许byte,short,int,char,enum等1、单分支控制作业:请大家看个案例[]:编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!”2、双分支控制作业:请大家看个案例[]:编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”3、多分支控制作业:请大家看个案例[]编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。
如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。
其它情况,则输出“小孩子,下次注意”。
4、多分支控制作业:请大家看个案例[]请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,ga表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。
5、多分支控制作业:请大家看个案例[]对比switch与if语句在执行分支语句的区别。
学java看什么书1.《java从入门到精通》本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,具体介绍了使用Java语言进行程序开发应该掌握的各方面技术。
全书共分28章,包括:初识Java,熟悉Eclipse开发工具,Java 语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing 程序〔制定〕,集合类,I/O输入输出,反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局〔管理〕器,高级事件处理,AWT 绘图与音频播放,打印技术和企业进销存管理系统等。
所有知识都结合具体实例进行介绍,涉及的程序代码给出了具体的解释,可以使读者轻松领会Java程序开发的精髓,快速提升开发技能。
2.《java核心技术卷一》本书是Java技术经典参照书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序制定、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面制定,异常处理、流输入/输出和对象序列化、泛型程序制定等。
本书内容翔实、深入浅出,附有大量程序实例,极具有用价值,是Java初学者和Java程序员的必备参照书。
3.《java编程语言》本书以Java语言创建者的独特视角向读者展现了为什么以及如何使用Java语言,以便读者理解Java语言的基本制定目标以及它在现实世界中的应用。
本书介绍的是Java语言的新版本,该版本在《Java Language Specification,Second Edition》中定义,在Java2SDK1.3标准版中实现。
本书已是第三版,在经构上相对前两版有所调整,重点讲述了新的语言特征,并提供了新API 的使用实例。
本书完全覆盖了Java语言当前版本的特征和类库,可以作为Java语言的入门向导,也可作为高级Java开发及Java 语言教学的参照用书。
cucumber java从入门到精通(3)简单实现及断言cucumber java从入门到精通(3)简单实现及断言上一节里我们定义了step的java代码实现文件,step就是测试步骤及断言的集合,我们先定义出来,以后可以驱动开发以及在持续集成时重用。
这一节我们将近距离细观一下所谓的step java实现。
以下面的代码片段为例:public class TodoStep { //1@假设("^我的任务清单里有(\\d+)个任务$") //2public void iHaveSomeTasks(int totalTasks) throws Throwable { //3// Write code here that turns the phrase above into concrete actionsthrow new PendingException();//4}}//1 定义了public class,这没什么好说的;//2 假设注解,这个注解表明下面的方法对应的也就是feature 文件中我的任务清单里有xxxx个任务这个步骤;//3 定义了具体实现feature文件步骤的方法,并从feature定义中取得传入参数,也就是xxxx个任务的具体值;//4 抛出Pending异常,表明该步骤暂未实现,但来日方长,也许有天可以实现;cucmber执行顺序如果你对上面的代码尚有疑问,那么是时候看一下cucumber 的执行顺序了,以下面代码片段为例:# feature假设我的任务清单里有3个任务// 1当我完成1件任务之后// 2那么我还剩下2件未完成的任务//3# step@假设("^我的任务清单里有(\\d+)个任务$") //4public void iHaveSomeTasks(int totalTasks) throws Throwable { //5// Write code here that turns the phrase above into concrete actionsthrow new PendingException();}@当("^我完成(\\d+)件任务之后$") //6public void iFinishSomeTasks(int finishedTasks) throwsThrowable { //7// Write code here that turns the phrase above into concrete actionsthrow new PendingException();}@那么("^我还剩下(\\d+)件未完成的任务$") //8public void iLeftSomeTasks(int leftTasks) throws Throwable { //9// Write code here that turns the phrase above into concrete actionsthrow new PendingException();}当我们运行了run命令后(还记得上一节的run吗?其实就是执行了cucumber.api.cli.Main。
Java基础知识总结(超详细整理)Java语⾔的特点1.⾯向对象⾯向对象(OOP)就是Java语⾔的基础,也是Java语⾔的重要特性。
⾯向对象的概念:⽣活中的⼀切事物都可以被称之为对象,⽣活中随处可见的事物就是⼀个对象,我们可以将这些事物的状态特征(属性)以及⾏为特征(⽅法)提取并出来,并以固定的形式表⽰。
2.简单好⽤Java语⾔是由C和C++演变⽽来的,它省略了C语⾔中所有的难以理解、容易混淆的特性(⽐如指针),变得更加严谨、简洁、易使⽤。
3.健壮性Java的安全检查机制,将许多程序中的错误扼杀在摇蓝之中。
另外,在Java语⾔中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的⾃动收集等),有效地减少了错误,使得Java应⽤程序更加健壮。
4.安全性Java通常被⽤在⽹络环境中,为此,Java提供了⼀个安全机制以防恶意代码的攻击,从⽽可以提⾼系统的安全性。
5.平台⽆关性Java平台⽆关性由Java 虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束⽽在任意计算机环境下正常运⾏。
6.⽀持多线程在C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持。
多线程机制使应⽤程序在同⼀时间并⾏执⾏多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(⽀持⽹络编程)Java语⾔具有强⼤的、易于使⽤的⽹络能⼒,⾮常适合开发分布式计算的程序。
java中提供了⽹络应⽤编程接⼝(),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存Java语法基础标识符: ⽤来标识类名、对象名、变量名、⽅法名、类型名、数组名、⽂件名的有效字符序列。
合法的标识符:由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且⾸字符不能是数字。
不能把java关键字和保留字作为标识符。
标识符对⼤⼩写敏感。
关键字:Java语⾔中已经赋予了特定含义的保留字: const、goto,Java版本中尚未使⽤,但以后版本可能会作为关键字使⽤变量:程序运⾏期间可以被改变的量。
Java的基础知识总结Java的基础知识标识符Java语言中,用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列,称为“标识符”。
简单地说,标识符就是一个名字。
Java 语言规定,标识符由字母、数字、下画线和美元符号组成,并且第一个字符不能是数字。
整数类型String/StringBuilder一个String对象的长度是固定的,不能改变它的内容,也不能附加新的字符至String对象中。
可以使用加号“+”运算符来连接字符串以达到附加新字符或字符串的目的,但使用加号“+”运算符会产生一个新的String实例,即需要另外分配空间。
如果既想节省开销,又能改变字符串的内容,则可以使用StringBuilder 类。
ng.StringBuilder类,使用这个类所产生的对象默认会有16个字符的长度,程序员也可以自行指定初始长度。
StringBuilder类就象一个可变长度的字符数组一样,内容和长度都可以被改变。
如果附加的字符超出可容纳的长度,则StringBuilder对象会自动增加长度以容纳被附加的字符。
类和对象Java程序是由对象组成的,而对象是由类所创建的。
什么是类在现实世界中,会经常发现许多单独的对象都是同一类型。
例如,也许有成千上万的单个的自行车存在,它们都是同样地模型,以相同的方式被制造。
每一个自行车都是构建于同一模板并因此包含同样的组件。
在面向对象术语中,就可以说,某个人的具体的自行车是自行车这个对象类的一个实例。
一个类就是一个模板,从它那里个体对象被创建。
同一类型的抽象。
什么是对象具体的实例称之为对象。
对象有属性和方法。
描述其特性的内容称之为属性,动态的一些行为称之为方法。
方法又称接口,什么是继承不同类型的对象,相互之间经常有一定数量的共同点。
可以从已有的一个类继承下来一个新的类,继承了父类的所有属性和特征,只需要增添新的属性和方法。
什么是接口对象通过它们暴露出来的方法定义它们与外部世界的交互。
方法形成对象与外部世界的接口。
按钮就是暴露给我们的接口。
什么是包包是组织一系列相关类和接口的一个命名空间。
由于用Java程序设计语言编写的软件可以由成百上千个单独的类组成,很显而易见的,通过将相关的类和接口放到包中会使开发工作变得更有条理。
定义类类是用来创建对象的模板,包含被创建对象的属性和方法的定义。
类的基本结构类是程序构成的基本要素,程序是由类组成的。
使用面向对象的语言开发程序,就犹如使用一个个零件组装机器一样。
类的声明声明类的成员变量程序中有多种类型的变量,如字段、局部变量、参数等。
这些变量在程序中的位置不同,所起的作用也不相同.访问修饰符类的访问修饰符有两个,public,private数据类型原始数据类型或引用数据类型。
变量名称(命名规范,类型的首字母应该大写。
变量名的首字母要小写。
类名的方法名称第一个单词应该是动词)声明类的成员方法所谓方法,类似于其他语言中的函数,是一个相对独立的代码语句块,通常实现一定的功能。
在类中声明成员方法的语法格式如下。
[方法修饰词列表] 返回类型方法名称(方法的参数列表){//方法体语句}虽然方法的名称可以是任何合法的标识符,但是编码惯例上对方法命名有一定的约束。
在惯例上,方法名称应该是一个小写的动词,或者一个多词组组成的名称,但是要以一个小写的动词起始,后面跟形容词、名词等。
在多词组组成的方法名中,从第二个单词开始,后面的每一个单词的首字母要大写。
方法重载一个类中,可以有相同名称但具有不同参数列表的方法。
调用方法,就是执行方法体中的代码语句。
在程序中,要调用方法,必须指明调用哪个对象的方法,因为在面向对象的语言中,方法是封装在对象中的,就好比让一个学生唱歌,必须指明让“谁”来唱歌。
这里“谁”就是对象,唱歌就是这个对象的方法。
类通信其实是相互调用方法。
public class PassMessageDemo{public static void main(String[] args){Hello hello = new Hello( ); //声明一个Hello类的实例对象hello.sayHello( ); //调用对象hello的sayHello方法hello.sayHello( ); //调用对象hello的sayHello方法hello.sayHello( ); //调用对象hello的sayHello方法}}class Hello{//定义一个表示问候的成员方法void sayHello( ){System.out.println("Hello,good morning!");}}为类提供构造器类包含有构造器,当创建对象实例时,构造器会被调用以根据类模板创建对象实例。
构造器的声明看上去与方法声明类似,但是构造器有自己的特点。
构造器的名称必须与类名相同。
构造器没有返回类型,包括关键字void也不能有。
任何类都含有构造器。
如果没有显式地定义类的构造器,则系统会为该类提供一个默认的构造器。
这个默认的构造器不含任何参数。
一旦在类中显式地定义了构造器,系统就不会再为这个类提供默认的构造器了。
通过参数,可以向方法或构造器内传递信息。
在创建对象时,通过构造器的参数来初始化对象的初始状态;在对象间传递消息时,是通过调用方法并将消息封装在参数中实现的。
实参与形参的关系实际向方法传递的参数称为“实参”;而在定义方法时,声明的方法参数称为“形参。
对象Java程序会创建许多对象,对象间通过调用方法进行交互和通信类是对象的模板,可以从一个类创建一个对象。
一旦创建了一个对象以后,就需要在适当的时候使用它。
例如需要它的某个字段的值,改变它的某个字段的值,或者调用它的方法来执行一个动作。
方法的返回值方法实际上是一段单独执行的代码段。
当方法执行完毕以后就会返回主程序。
不管哪种情况先发生,方法都会返回。
当以下情况发生时,方法返回到调用它的代码处:完成方法中所有语句;遇到return语句;抛出一个异常。
使用this关键字关键字this是对当前对象的引用。
所谓当前对象,指的是其方法或构造器正在被调用的对象,也就是正在调用的方法或构造器所在的对象。
可以通过this 在一个实例方法或构造器中引用当前对象的任何成员。
最经常使用this关键字的情况,是在对象的一个字段被方法或构造器的参数屏蔽时,需要调用这个被屏蔽的字段的这种情况。
在一个构造器中,还可以使用this关键字来调用同一个类中的另外的构造器。
这种做法称之为“显式构造器调用”。
变量声明为私有的只能通过方法/接口来访问,起到封装的目的。
对静态变量的操作必修也是静态的。
继承java的三大特征,继承、封装和多态。
通过继承,可以快速地创建新的类,可以实现代码的重用,提高程序的可维护性,节省大量的创建新类的时间,提高开发效率和开发质量。
public class Car extends AutoCar继承父类的全部属性但不继承私有的成员,只需增加新的属性。
super(originalBrand,originalExhaust,startSpeed);super为父类初始化不论子类位于哪个包中,它都继承其超类所有的public(公共的)和protected (受保护的)成员。
如果子类和超类在同一个包中,它还继承超类的包级私有(package-private)的成员(包级私有成员,指的是类中不带修饰符的成员和方法,默认对其访问权限仅限于同一个包中)。
在子类中,既可以不加修改地使用继承过来的成员,也可以替换、隐藏它们,或者使用新的成员对其进行补充。
调用类首先从自身查找,没有在从超类中查找。
接口经常将一个大的项目分由不同的开发小组共同开发,各个小组的开发工作是并行的。
在很多时候,对于不同小组的程序员来说,清楚地说明各自的软件如何相互作用,并就此达成统一“约定”是很重要的。
接口就是这样的“约定”。
在Java中定义接口定义接口与创建一个新的类很类似,包括接口的声明和接口体的实现。
但需要使用关键字interface,后跟接口的名称。
接口的名称同样要遵循Java 标识符命名规则。
接口所含有的方法声明后面紧跟一个分号,而不是花括号。
//位于文件Calculate.java中public interface Calculate {float PI = 3.14f; //定义一个用于表示圆周率的常量PIfloat getArea( ); //定义一个用于计算面积的方法float getGirth( ); //定义一个用于计算周长的方法}要使用接口,需要编写一个实现接口的类。
当一个类实现一个接口时,它必须为接口中声明的每一个方法提供一个方法体,既必须实现接口中的所有方法。
类实现接口,用关键字implements。
定义接口接口声明由修饰符、关键字interface、接口名称、用逗号分隔的父接口列表(如果有的话)和接口体组成。
接口体在接口声明后面的大括号括起来的部分,为接口的接口体。
接口体由两部分组成:常量声明和方法声明。
其语法格式如下所示。
[修饰符] interface 接口名称[extends 父接口名称列表]{// 常量声明[public] [static] [final] 常量名称;// 方法声明[public] [abstract] 返回类型方法签名;}实现接口接口的主要作用,是声明共同的常量或方法,用来为不同的类提供不同的实现,但这些类仍然可以保持同样的对外接口。
接口可以被类实现,也可以被其他接口继承。
在类中实现接口需要使用关键字implements。
实现接口的语法要声明一个实现接口的类,需要在类的声明中使用implements短语。
一个类可以实现多个接口,所以implements关键字后面要跟一个被类实现的接口列表,用逗号分隔符分隔。
在类中实现接口的语法格式为:[修饰符] class 类名称[extends 父类名称] implements 接口列表{// 类体// 在类中,要实现所有接口中声明的方法}public interface Relatable {public int isLargerThan(Relatable other);}抽象类与嵌套类抽象类、嵌套类。
它们都属于Java类的高级特性,都有特殊的用途。
抽象类用来提供更高级的类型抽象,而嵌套类则提供更加紧密的封装特性。
抽象类在面向对象的程序设计语言中,类是有层次和继承关系的。
子类总是比其超类更加具体。
而程序员在程序开发过程中,很多时候需要构造一系列的类及其继承关系,这时候,通常会将类层次中共有的特性抽取出来,创建包含这些共有特性的抽象类,并由抽象类派生出更加具体、有更多实现的子类或后代类,形成一个完整的类的层次体系。