黑马程序员 Java基础 04
来源:互联网 发布:上海数据港 业务畸形 编辑:程序博客网 时间:2024/06/07 10:07
---------------------- android培训、java培训、期待与您交流! ---------------------
嵌套循环练习
class ForForTest {public static void main(String[] args) {/*输出如下图形****************/for(int x=1;x<=5;x++){for(int y=5-x;y>=0;y--)//使用x控制y的值{System.out.print("*");}System.out.println();//每次行的输出结束后,换行}System.out.println("--------------");/*****************/for (int x=1;x<=5 ;x++ ){for (int y=1;y<=x ;y++ )//使用x控制y的范围{System.out.print("*");}System.out.println();//每次行的输出结束后,换行}System.out.println("--------------");/*543215432543545*/for (int x=1;x<=5 ;x++ ){for (int y=5;y>=x ;y--){System.out.print(y);}System.out.println();}System.out.println("--------------");/*122333444455555*/for (int x=1;x<=5 ;x++ ){for (int y=1;y<=x ; y++){System.out.print(x);}System.out.println();}}}class ForFor99{public static void main(String[] args) {/*1*1=11*2=22*2=41*3=32*3=63*3=9……*/for (int x=1;x<=9 ;x++ ){for (int y=1; y<=x;y++ ){System.out.print(y+"*"+x+"="+y*x+"\t");//使用制表符'\t'能够实现输出时对齐}System.out.println();}/*\n 回车\t 制表符\b 退格\r 按下回车键windows系统中回车符其实是由两个符号组成的\r\nlinux中回车符是\n*/}}class BreakContinueDemo {public static void main(String[] args) {/*break 跳出作用的范围:只在switch语句和循环语句中使用※当break语句单独存在时,下面不要定义其他语句,因为执行到break语句时跳出,后面的语句不会执行break跳出当前循环,如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成*/for (int x=0;x<3 ;x++ ){System.out.println("x="+x);break;//第一次循环的最后跳出,只输出一次x=0}System.out.println("---------------");loop1:for (int x=0;x<3 ;x++ )//对for循环起名{loop2:for (int y=0;y<4 ;y++ ){System.out.println("x="+x);break loop1;//在内循环中第一次执行输出语句后,直接跳出外循环loop1,结果只输出一次x=0}}System.out.println("---------------");/*continue 继续作用的范围:循环结构作用:结束本次循环,继续下次循环*/for (int x=0;x<11 ;x++ ){/*在进入循环后,先执行continue语句,跳出当前循环进行下次循环continue;System.out.println("x="+x);//该语句无法执行,编译报错。*/if (x%2==0)//x为偶数时,不输出,继续下次循环{continue;}System.out.println("x="+x);}System.out.println("---------------");loop1:for (int x=0;x<3 ;x++ )//对for循环起名{loop2:for (int y=0;y<4 ;y++ ){System.out.println("x="+x);continue loop1;//在内循环中第一次执行输出语句后,跳到外循环继续执行,输出x=0,x=1,x=2}}}}函数 什么是函数 韩式就是定义在类中的具有特定功能的一段独立小程序 函数也称为方法 定义函数的格式 修饰符 返回值类型 函数名(参数类型 形参2,参数类型 形参2,...) //函数名有多个单词时,第一个单词小写,后面的单词首字母大写 { 执行语句; return 返回值; } 特殊情况: 功能没有具体的返回值。 这时,retrun的后面直接用分号结束,因为没有具体值,所以不可以写具体的数据类型, 在java中只能用一个关键字void来表示这种情况。 注意:如果返回值类型为void,那么函数中的return语句可以省略不写。 特点: 1.定义函数可以将功能代码进行封装 2.便于对该功能进行服用 3.函数只有被调用才会被执行 4.函数的出现提高了代码的复用性 注意: 函数中只能调用函数,不能在函数内部定义函数。 定义函数时,函数的结果应该返回给调用者,交由调用者处理。class FunctionDemo3 { public static void main(String[] args) { System.out.println(add(4,5)); draw(7,9); System.out.println(equals(5,6)); System.out.println(getMax(4,5)); } /* 需求1:定义一个功能,完成两个整数的和的获取 思路:既然定义功能,就是可以用函数来体现 如何定义一个函数? 通过两个明确来完成 明确1:这个功能的结果是什么? 是两个整数的和,是功能的结果,所以该功能的返回值类型是int 明确返回值的类型。 明确2:这个功能实现过程中是否需要未知内容参与运算? 需要加数和被加数。 这就是函数的参数列表(参数的个数,参数的类型) 明确参数列表 注意:返回值类型和参数类型没有直接关系 */ public static int add(int a,int b) { return a+b; } /* 需求2 定义一个功能,在控制台画一个矩形 明确1:这个功能的结果是什么?没有结果,直接打印到控制台 明确2:这个功能实现过程中是否需要未知内容参与运算? 行和列不确定,需要两个整数int */ public static void draw(int row,int col) { for (int x=1;x<=row ;x++ ) { for (int y=1;y<=col ;y++ ) { System.out.print("*"); } System.out.println(); } } /* 需求3 定义一个功能,比较两个数是否相等 明确1:这个功能的结果是什么?有结果,true或false,返回值为boolean 明确2:这个功能实现过程中是否需要未知内容参与运算? 两个数不确定,需要两个整数int */ public static boolean equals(int a,int b) { /* if(a==b) return true; else return false; */ return a==b;//a==b,本身是在进行比较运算,结果是true或false,不要要是用(a==b)?true:false } /* 需求4 定义一个功能,获取两个整数中较大的那个数 明确1:这个功能的结果是什么?有结果,返回较大的整数 明确2:这个功能实现过程中是否需要未知内容参与运算? 参与比较的数不确定,需要两个整数int */ public static int getMax(int a,int b) { return (a>b)?a:b; } }
函数的重载(overload)
重载的概念
在同一个类中,允许存在一个以上的同名名称,只要他们的参数个数或者参数类型不同即可。
重要特点
与返回值类型无关,只看参数列表class FunctionDemo4 { public static void main(String[] args) { System.out.println(add(1.2,2.5)); printCFB(5); printCFB(); } /* 函数的重载 1.同一个类 2.同名 3.参数个数不同或参数类型不同 4.函数重载和返回值类型无关 5.java是严谨性语言,如果函数出现调用的不确定性,会编译失败 */ //加法运算,两个整数的和 public static int add(int a,int b) { return a+b; } //加法运算,两个小数的和 public static double add(double a,double b) { return a+b; } //加法运算,三个整数的和 public static int add(int a,int b,int c) { return a+b+c; } /* 打印乘法表 */ public static void printCFB(int num) { for (int x=1;x<=num ;x++ ) { for (int y=1; y<=x;y++ ) { System.out.print(y+"*"+x+"="+y*x+"\t");//使用制表符'\t'能够实现输出时对齐 } System.out.println(); } } /* 打印标准乘法表 */ public static void printCFB() { printCFB(9); } }
数组(引用数据类型)
概念:同一种类型数据的结合,其实数组就是一个容器
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素
格式1
元素类型[] 数组名=new 元素类型[元素个数或数组长度];
int[] arr=new int[5]
格式2
元素类型[] 数组名=new 元素类型[] {元素,元素,……};
int[] arr=new int[]{3,5,1,7};
int[] arr={3,5,1,7};
内存的划分
1.寄存器
2.本地方法区
3.方法区
4.栈内存
存储的都是局部变量(程序运行时,方法要进栈,否则,局部变量无法进栈)。
而且变量所属的作用域一旦结束,该变量就自动释放
5.堆内存
存储的是数组和对象(其实数组就是对象);凡是new建立的,都在堆中
特点:
1.每一个实体都有首地址值
2.堆内存中的每个变量都有默认初始化值,根据类型的不同而不行(整数是0,小数是0.0或0.0f,boolean是false,char'\u0000')
3.垃圾回收机制
arr不做任何实体指向,则arr=null;//数组arr为空,所有元素的值都为默认初始化值
int[] x=new int[3];//假设首地址为0x0034,数组内元素为x{0,0,0}
int[] y=new int[3];//假设首地址为0x0087,y{0,0,0}
x[0]=9;//x{9,9,9}
y[0]=34;//x{34,0,0}
x=y;//首地址变为0x0087,x{34,0,0}
多个数组变量可以指向同一个实体。class ArrayDemo { public static void main(String[] args) { //元素类型[] 数组名=new 元素类型[元素个数或数组长度]; int[] arr=new int[3]; arr[0]=89; System.out.println(arr[0]); } }----------------android培训、java培训、期待与你交流,详细查看:http://edu.csdn.net/heima------------
- 黑马程序员 Java基础 04
- 黑马程序员------java基础
- 黑马程序员-Java基础
- 黑马程序员----JAVA基础
- 黑马程序员--Java基础
- 黑马程序员-Java基础
- 黑马程序员-------Java基础
- 黑马程序员--java基础
- 黑马程序员-java-基础
- 黑马程序员--java基础
- 黑马程序员-Java基础
- 黑马程序员-java基础
- 黑马程序员-java基础
- 黑马程序员--java基础
- 黑马程序员-Java基础
- 黑马程序员---Java基础
- 黑马程序员--Java基础
- 黑马程序员-----Java基础
- JSP简介
- 蓝牙项目实现
- Oracle列操作(增加列,修改列,删除列)
- Dom Window的属性(未完)
- Android入门:通过JSON数据与服务器进行通信
- 黑马程序员 Java基础 04
- 关于爱情
- 编程技巧:C#中的Cast By Example(如何将弱类型的匿名类型参数转换为强类型)
- myeclipse安装插件
- JSF 实现二级连动 AJAX
- 【PHP】php.ini 大文件上传配置
- GoogleMarket上传APP流程
- VC++ WIN32 sdk实现按钮自绘详解.
- Oracle表空间的魅力