1、韩顺平java从入门到精通视频教程学习笔记整理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虚拟机中执行对程序进行改过使之变
2、为一个简单的加法运算程序;. case 常量n: 语句n; break; default: 语句; break; *:switch中的可用数据类型主要是:允许byte,short,int,char,enum等1、单分支控制作业:请大家看个案例:编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!”2、双分支控制作业:请大家看个案例:编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”3、多分支控制作业:请大家看个案例编写一个程序,可以输入人的年龄,如
3、果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。4、多分支控制作业:请大家看个案例请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,ga表示星期一,b表示星期二.根据用户的输入显示相应的信息,要求使用switch语句完成。5、多分支控制作业:请大家看个案例对比switch与if语句在执行分支语句的区别。*switch分支语句不支持判断类型即boolean类型,switch只支持byte,short,int,char,e
4、num等数据类型-循环控制听其名而知其意,就是让你的代码可以循环的执行。循环控制有三种1、for循环 语法: for(循环初值;循环条件;步长) 语句; .注意:从猫类到对象,目前有几种说法:1、创建一个对象;2、实例化一个对象;3、对类实例化.以后大家听到这些说法,不要模糊。(对象就是实例,实例就是对象)java最大的特点就是面向对象。性名字 =3; =小白; =白色; 2、对象是具体的,实际的,代表一个具体事物3、类对象的模板,对象是类的一个个体,实例类-如何定义类一个全面的类定义比较复杂,如:package 包名;class 类名 extends 父类 implements接口名 成员变
5、量; 构造方法; 成员方法;要透彻的掌握类,必须要了解类的构成class 类名 - 待定. 成员变量;类-类的成员变量成员变量是类的一个组成部分,一般是基本数据类型,也可是引用类型。比如我们前面定义猫类的int age 就是成员变量。对象-如何创建对象创建一个对象有两种方法1、先声明再创建 1、对象声明:类名 对象名 2、对象创建:对象名=new 类名()2、一步到位法 类名 对象名=new 类名()对象-如何访问(使用)对象的成员变量 对象名.变量名; .),我们人类还有一些行为比如:可以说话、跑步.,通过学习,我们人类还可以做算术题。这时就要用成员方法才能完成。现在要求对Person类完善
6、:1、添加speak成员方法,输入出:我是一个好人2、添加jisuan成员方法,可以计算从1+.+1000的结果3、修改jisuan成员方法,该方法可以接收一个数n,计算从1+.+n的结果4、添加add成员方法,可以计算两个数的和类-类的成员方法(成员函数)定义成员方法也叫成员函数,这里希望大家不要被两个名词搞晕了。 public 返回数据类型 方法名(参数列表) 语句;+1000的方法 public void jiSuan() int result=0; for(int i=1;i=1000;i+) result=result+i; 1+.+1000结果是+result); +n publi
7、c void jiSuan(int n) int result=0; for(int i=1;i=n;i+) result+=i; 1+.+n结果是+result); 访问修饰符 返回数据类型 函数名(参数列表) 语句; 也可以没有返回值void表示没有返回值 访问修饰符 返回数据类型 函数名(形参列表) 语句; ;public class Demo110 public static void main(String args) Cfb jiu=new Cfb(); (); class Cfb public void cf() try 设计类;2.然后根据类创建对象。小练习:1、设计计算机类,
8、要求如下:属性:品牌(Brand)、颜色(Color)、cpu型号(CPU)、内存容量(Memory)、硬盘大小(Harddisk)、价格(Price)、工作状态(Work)方法:打开(Open)、关闭(Close)、休眠(Sleep)创建一个计算机对象,调用打开,关闭方法; 成员方法 java面向对象编程(2)-this一个问题?请大家看一段代码:*重点*:this是属于一个对象,不属于类的。java虚拟机会给每个对象分配this,代表当前对象。坦白的讲,要明白this不是件容易的事注意事项:this不能在类定义的外部使用,只能在类定义的方法中使用/* this的必要性*/public cl
9、ass Demo112 public static void main(String args) Dog dog1=new Dog(2,大黄); Person p1=new Person(dog1,23,郭德纲); Person p2=new Person(dog1,24,刘谦); (); 变量名 或者 对象名.类变量名方法名 或者 对象名.类方法名*重点*static静态的方法可以访问static静态变量,不能访问非静态变量(类变量) 非静态方法可以访问非静态变量(类变量)同时也可以访问static静态变量。变量名 直接访问类方法小结1、什么时候需要用类方法案例:定义学生类,统计学生共交多少
10、钱?类方法属于与类相关的,公共的方法实例方法属于每个对象个体的方法类方法可以通过 类名.类方法名 直接访问-java面向对象编程的四大特征抽象/封装/继承/多态抽象1、简单理解我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版)。这种研究问题的方法称为抽象。封装-什么是封装封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。封装-访问控制修饰符电视机的开关,对音量,颜色,频道的控制是公开的,谁都可以操作,但是对机箱后盖,主机板的操作却不是公开的,一般是由专业维修人
11、员来玩。那么java中如何实现这种类似的控制呢?不能随便查看人的年龄,工资等隐私定义名字;注意:打包命令一般放在文件开始处。包-命名规范小写字母 比如 包-常用的包一个包下,包含很多的类,java中常用的包有:.* 包 自动引入 .* 工具包.* 包 网络开发包 .* 包 窗口工具包包-如何引入包语法:import 包;比如import .*;我们引入一个包的主要目的要使用该包下的类定义类的改进在提出包后,我们类的定义就更加完善了:class 类名 class 类名 class类名 package包名; 待定.成员变量; 成员变量; 成员变量; class 类名 成员方法; 构造方法; 成员变
12、量; 成员方法; 构造方法; 成员方法; -继承-为什么有?. 构造方法; 成员方法;-java面向对象编程(2)-方法重载(overload)方法重载(overload)按顺序,我们应该讲解多态,但是在讲解多态前,我们必须讲解方法重载和方法覆盖(override)。请编写一个类(Abc),编写方法可以接收两个整数,返回两个数中较大的数.n的n个人围坐一圈,约定编号为k(1=k=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。 提示:用一个不带头结点的循环链表来处理Josephu问题:先构成一个
13、有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点的人从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。找到开始数数的人 for(int i=1;ik;i+) temp=; while!=1) m下 for(int j=1;jm;j+) temp=; 数到m的小孩,退出圈 =; .-java面向对象编程(3)-抽象类抽象类-解决之道当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法抽象方法,用abstract来修饰该类抽象类。量名5、一个接口不能继承其它的类,但是可以继承别的接口); public void
14、stop() 我是相机,停止工作了.); ); public void stop() 我是手机,停止工作了.); 一个加法器,计算它们的和 2.作一个减法器,计算它们的差 3.作一个乘法器,计算它们的积 4.作一个除法器,计算它们的商(和余数)public class Work01 public static void main(String args) int i=9;int j=4; int k=i+j; int l=i-j; int m=i*j; int n=i/j; int o=i%j; 和:+k+ 差:+l+ 积:+m+ 商:+n+ 模:+o); *第二题:正方型;.+20=?思考如
15、果让用户输入一个整数n计算累加和:1+2+3+.+n能做到吗?import .*;.+n的值是+i); *第十二题请编写一个Cat类,要求如下:该猫可以做四则运算,也可以进行面积计算;将四则运算器和面积运算器合二为一,作一个运算器,主菜单让用户选择是做四则运算还是面积运算,分为两个子菜单,让用户选择加减乘除或者形状。;public class Work13 public static void main(String args) Scanner sr=new Scanner; *代码分析:1、运行一下代码,将得到什么打印结果:int i=3;int j=0;double k=;if(jk)if
16、(i=j)执行此语句,得到结果0else、以下代码能否编译通过?假如能编译通过,运行时得到什么打印结果?int i=4;switch(i) default; default);public class Work14_1 public static void main(String args) ();public class Work15 public static void main(String args) ;public class Work16 public static void main(String args) ength三、关于数组的用法,有几种方式:3、古板用法 (当已知元素值
17、的时候可以使用此法)1、初始化数组 语法:数据类型 数组名=元素值,元素值.;例:int a=2,5,6,7,8,89,90,34,56上面的用法相当于:int a=new int9int a0=2;int a1=5;int a2=6;.a8=56;2、数组的引用(使用) 语法:数组名下标例:a数组的第8个元素a7一个问题?一个养鸡场有6只鸡,它们的体重分别是3kg、5kg、1kg,、2kg、50kg。请问这六只鸡的总体重是多少?平均体重是多少?请你编写一个程序。等都可以有数组,那么可不可以有对象数组呢?对前面的养鸡场的题,进行升级,题要求如下:一个养狗场有4只狗,分别是:名字 体重花花 白白
18、 黑黑 78kg红红 请编写一个程序,可以计算他们的平均体重,可以找出体重最大和最小的狗的名字,可以通过输入狗的名字,查找它的体重。;import .*;public class Demo131 public static void main(String args) throws Exception etName(花花); dogs0.setWeight; dogs*/ etName(name);etWeight(weight);etWeight();etWeight(); int maxIndex=0;etWeight() etWeight(); maxIndex=i; etWeight(
19、); int minIndex=0; for(int j=1;jdogsj.getWeight() etWeight(); minIndex=j; 体重大的狗是第+(maxIndex+1)+狗,名字叫:+dogsmaxIndex.getName()+t体重是+maxWeight); 体重小的狗是第+(minIndex+1)+狗,名字叫:+dogsminIndex.getName()+t体重是+minWeight); etName()quals()方法用于字符串比较内容是否一致。 你要找狗名+ dogscIndex.getName()+t体重是+dogscIndex.getWeight(); .
20、,第i次从Ri-1-Rn-1中选取最小值,与Ri-1交换,.,第n-1次从Rn-2-Rn-1中选取最小值,与Rn-2交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。例如,给定n=8,数组R中的8个元素的排序码为:(8,3,2,1,7,4,6,5),选择排序过程。.,kn表示成一棵完全二叉树,然后从第n/2个排序码开妈筛选,使由该结点组成的子二叉树符合堆的定义,然后从第n/2-1个排序码重复刚才操作,直到第一个排序码止,这时候,该二叉树符合堆的定义,初始堆已经建立。 接着,可以按如下方法进行堆排序:将堆中第一个结点(二叉树根结点)和最后一个结点的数据进行交换(k1与kn),再将k
21、1-kn-1重新建堆,然后k1和kn-1交换,再将k1-kn-2重新建堆,然后k1和kn-2交换,如此重复下去,每次重新建堆的元素个数不断减1,直到重新建堆的元素个数仅剩一个为止。这时堆排序已经完成,则排序码k1,k2,k3,.kn已排成一个有序序列。 若排序是从小到大排列,则可以建立大根堆实现堆排序,若排序是从大到小排列,则可以用建立小根堆实现堆排序。其它排序法-希尔排序法(知道有这个排序法即可) 希尔排序(Shell Sorting)又称为“缩小增量排序”。是1959年由提出来的。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排
22、序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。 因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。其它排序法-二叉树排序法 二分插入排序(Binary Insert Sorting)的基本思想是:在有序表中采用二分查找的方法查找待排元素的插入位置。 其处理过程:先将第一个元素作为有序序列,进行n-1次插入,用二分查找的方法查找待排元素的插入位置,将待排元素插入。-外部排序法其它排序法-合并排序法(最为常用的排序方法) 合并排序法(Merge Sorting)是外部排序最常使用的排序方法。若数
23、据量太大无法一次完全加载内存,可使用外部辅助内存来处理排序数据,主要应用在文件排序。排序方法: 将欲排序的数据分别存在数个文件大小可加载内存的文件中,再针对各个文件分别使用“内部排序法”将文件中的数据排序好写回文件。再对所有已排序好的文件两两合并,直到所有文件合并成一个文件后,则数据排序完成。1、将已排序好的A、B合并成E,C、D合并成F,E、F的内部数据分别均已排好序2、将已排序好的E、F合并成G,G的内部数据已排好序3、四个文件A、B、C、D数据排序完成;public class Demo136 public static void main(String args) int arr=2,
24、5,7,12,25;*java基本语法-多维数组多维数组-二维数组多维数组我们只介绍二维数组1、定义 语法:类型 数组名=new 类型大小大小;比如:int a=new int23;2、分析二维数组在内存中存在的形式3、案例,请用二维数组输出如下图形0 0 0 0 0 00 0 1 0 0 00 2 0 3 0 00 0 0 0 0 0;public class Demo140 public static void main(String args) quals(empNo)quals(empNo) quals(empNo) ;public class Demo141 public stati
25、c void main(String args) LinkedList ll=new LinkedList(); Empp emp1=new Empp(sa01,aa,; Empp emp2=new Empp(sa02,bb,; Empp emp3=new Empp(sa03,cc,; ;public class Demo142 public static void main(String args) ;public class Demo143 public static void main(String args) ;public class Demo143 public static void main(String args) terator(); oString(); ;public class Demo144 public static void main(String args) Hashtable ht=new Hashtable();terator();();) String key=().toString(); Emp emp=(Emp)(key); 名字:+()+
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1