The fourth day
switch结构:多选择结构
if - else if - else 与 switch的区别:if- else if - else (布尔表达式区间),switch表示值;
注意:break的使用
if - else if - else 与 switch的区别:if- else if - else (布尔表达式区间),switch表示值;
1 //测试switch语句 2 public class TestSwitch { 3 public static void main(String[] args){ 4 int month = (int)(1+12*Math.random()); 5 System.out.println("月份:"+month); 6 switch(month){ 7 case 1: 8 System.out.println("一月份,过年了!"); 9 //break; 10 case 2: 11 System.out.println("二月份,开春了!"); 12 //break; 13 default: 14 System.out.println("我是其他月份!"); 15 break; 16 } 17 } 18 }
注意:break的使用
while(布尔表达式){
循环体;
}
循环体;
}
1 public class TestWhile { 2 public static void main(String[] args) { 3 //计算1+2+3+……+100的累加的和,5050. 4 //暴力 5 int i=1, sum = 0; 6 while (i<=100){ 7 sum= sum+i; 8 i++; 9 System.out.println(sum); //表示执行过程 10 } 11 //System.out.println(sum); 12 } 13 }
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。
1 public class TestFor { 2 public static void main(String[] args) { 3 //计算1到100的整数和 4 int i,sum=0; 5 for (i=1;i<=100;i++){ 6 sum=sum+i; 7 } 8 System.out.println("sum="+sum); //双引号里的是字符串 ,syso在面里面 9 } 10 }
用for 输出:1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
1 public class TestWhile { 2 public static void main(String[] args) { 3 int i,j; 4 for (i=1;i<=5;i++){ 5 for (j=1;j<=5;j++){ 6 System.out.print(i+" "); 7 //print 里面必须有内容," "里面是空格 得出结果是 11111 22222 33333 44444 55555 8 } 9 System.out.println(); 10 //再换行,得出结果; 11 } 12 } 13 }
1 //乘法口诀,用for 2 public class TestFor { 3 public static void main(String[] args) { 4 int i,j,s=0; 5 for (i=1;i<=9;i++){ 6 for(j=1;j<=i;j++){ 7 s=j*i; 8 System.out.print(j+"*"+i+"="+s+" \t");//横向跳到下一制表符位置 9 } 10 System.out.println(); 11 } 12 } 13 }
break终止整个循环,continue终止本次循环。
带标签的break和continue:
goto 是 Java的一个保留字,但并未在Java语言中得到正式使用;
Java没有goto语句。
带标签的break和continue:
goto 是 Java的一个保留字,但并未在Java语言中得到正式使用;
Java没有goto语句。
方法的定义_形参_实参_返回值_语句块:方法就是一段用“来完成特定功能的代码片段”,类似于其它语言的函数
方法声明格式:
【修饰符1 修饰符2 _】 返回值类型 方法名(形式参数列表){
Java语句:_ _ _
}
方法的调用方式:
对象名.方法名(实参列表)
方法的详细说明
1.形式参数:在方法声明时用于接收外界传入的数据。
2.实参调用方法是实际传给方法的数据。
3.返回值:方法在执行完毕后返还给调用它的环境的数据。
4.返回值类型:事先约定的返回值的数据类型,如无返回值,必须显示指定为void。
//测试方法的基本使用
注意事项:
1.实参的数目,数据类型和次序必须和所调用的方法声明的形式参数列表匹配;
2.return语句终止方法的运行并指定要返回的数据;
3.Java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是参数的副本);
4.基本类型传递的是该数据值得copy值;
5.引用类型传递的是该对象引用的copy值,但指向的是同一个对象。
方法的重载:overload,
实际是完全不同的方法,只是名称相同
递归算法_递归头_递归体(本质:自己调自己,典型例子:阶乘,如算5的阶乘)
1.定义递归头。 什么时候不调用自身方法,如果没有头,将陷入死循环,也就是递归的结束条件;
2.递归体。 什么时候需要调用自身方法。
方法声明格式:
【修饰符1 修饰符2 _】 返回值类型 方法名(形式参数列表){
Java语句:_ _ _
}
方法的调用方式:
对象名.方法名(实参列表)
方法的详细说明
1.形式参数:在方法声明时用于接收外界传入的数据。
2.实参调用方法是实际传给方法的数据。
3.返回值:方法在执行完毕后返还给调用它的环境的数据。
4.返回值类型:事先约定的返回值的数据类型,如无返回值,必须显示指定为void。
//测试方法的基本使用
1 public class TestMythod { 2 public static void main(String[] args) { 3 //通过对象调用普通方法 4 TestMythod tm= new TestMythod(); //类创建对象 5 tm.printSxt(); //调用对象的方法 6 int c = tm.add(30, 40, 50)+1000; //实际参数 7 System.out.println(c); 8 } 9 void printSxt(){ 10 System.out.println("北京尚学堂…"); 11 System.out.println("上海尚学堂…"); 12 System.out.println("广州尚学堂…"); 13 } 14 int add(int a , int b, int c){//形式参数 15 int sum= a+b+c; 16 System.out.println(sum); 17 return sum; //return 两个作用:1.结束方法的运行;2.返回值 18 } 19 }
注意事项:
1.实参的数目,数据类型和次序必须和所调用的方法声明的形式参数列表匹配;
2.return语句终止方法的运行并指定要返回的数据;
3.Java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是参数的副本);
4.基本类型传递的是该数据值得copy值;
5.引用类型传递的是该对象引用的copy值,但指向的是同一个对象。
方法的重载:overload,
实际是完全不同的方法,只是名称相同
递归算法_递归头_递归体(本质:自己调自己,典型例子:阶乘,如算5的阶乘)
1.定义递归头。 什么时候不调用自身方法,如果没有头,将陷入死循环,也就是递归的结束条件;
2.递归体。 什么时候需要调用自身方法。
面向过程和面向对象的区别都是对软件分析,设计和开发的一种思想,它指导着人们以不同的方式去分析,设计和开发软件。
面向过程思想思考问题是,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。
这个适合简单任务,不需要过多协作的情况下。比如,如何开车?
面向过程适合简单,不需要协作的事物。但是当我们思考比较复杂的问题,比如“如何造车?”,就会发现列
出1234这样的步骤,是不可能的。那是因为,造车太复杂了,需要很多协作才能完成。此时面向对象思想就应运而生了。
面向对象(object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?”
比如思考造车,我们就会先思考“车怎么设计?”,而不是怎么按步骤造车的问题。
面向过程思想思考问题是,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。
这个适合简单任务,不需要过多协作的情况下。比如,如何开车?
面向过程适合简单,不需要协作的事物。但是当我们思考比较复杂的问题,比如“如何造车?”,就会发现列
出1234这样的步骤,是不可能的。那是因为,造车太复杂了,需要很多协作才能完成。此时面向对象思想就应运而生了。
面向对象(object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?”
比如思考造车,我们就会先思考“车怎么设计?”,而不是怎么按步骤造车的问题。
对象是什么_对象和数据管理
事物的发展总是遵循“量变引起质变”的哲学原则;
数据管理: 数据无管理,数据管理和企业部门制,对象和企业项目制
类:我们叫做class,对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。
类中创建对象
类中创建对象和方法的实例:
事物的发展总是遵循“量变引起质变”的哲学原则;
数据管理: 数据无管理,数据管理和企业部门制,对象和企业项目制
类:我们叫做class,对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。
类中创建对象
类中创建对象和方法的实例:
1 public class TestLei { 2 void study(){ 3 System.out.println("现在必须好好学习"); 4 } 5 void work(){ 6 System.out.println("然后好好工作"); 7 } 8 void time(){ 9 System.out.println("剩下的时间是安详"); 10 } 11 TestLei(){ //系统自动省略 12 } 13 public static void main(String[] args) { 14 TestLei lei = new TestLei();//有new的就是代表自动创建一个对象,(TestLei(){}表示构造方法, 15 用于创建这个类的对象,无参的构造方法可以由系统自动创建) 16 lei.study(); 17 lei.work(); 18 lei.time(); 19 } 20 }
Java虚拟机的内存可以分为三个区域:栈stack,堆heap,方法区methond area
栈的特点如下:
1.栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出
口等)
2.JVM 为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量等)
3.栈属于线程私有,不能实现线程间的共享!
4.栈的存储特性是“先进后出,后进先出”
5.栈是由系统自动分配,速度快,栈是一个连续的内存空间!
堆的特点如下:
1.堆用于“创建好的对象和数组”(数组也是对象)
2.JVM只有一个堆,被所有线程共享
3.堆是一个不连续的内存空间,分配灵活,速度慢!
方法区(又叫静态区)特点如下:
1.JVM只有一个方法区,被所有线程共享;
2.方法去实际也是堆,只是用于存储类,常量相关的信息!
3.用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】,静态变量,字符串常量等)
栈的特点如下:
1.栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出
口等)
2.JVM 为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量等)
3.栈属于线程私有,不能实现线程间的共享!
4.栈的存储特性是“先进后出,后进先出”
5.栈是由系统自动分配,速度快,栈是一个连续的内存空间!
堆的特点如下:
1.堆用于“创建好的对象和数组”(数组也是对象)
2.JVM只有一个堆,被所有线程共享
3.堆是一个不连续的内存空间,分配灵活,速度慢!
方法区(又叫静态区)特点如下:
1.JVM只有一个方法区,被所有线程共享;
2.方法去实际也是堆,只是用于存储类,常量相关的信息!
3.用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】,静态变量,字符串常量等)