------- java培训、期待与您交流! ----------
java中的流程控制与面向对象
流程控制:一般的编程语言都会提供两种基本的流程控制结构:分支结构和循环结构。
分支结构:根据条件选择性的执行某段代码。循环结构:根据条件循环的执行某段代码。
在Java中 分支结构提供了:if()else{} 和switch{} 两种分支语句 。循环语句Java中提供了while,do while,for循环语句
1,分支结构
(1)if条件语句:
(2)switch语句:它是由一个条件和多个case标签组成的。
它的表达式语句中的数据类型只能是byte,short,char,int四个证书类型和枚举类型也可以String类型
例如:
注意在case标签后的每个代码块都有一个break;语句,如果没有break;那么会接着输出从条件选择的地方往下一次执行
例如:
2,循环结构
(1)while(){}语句在满足循环条件下,反复执行某段代码
例如:
(2)do{}while()语句是先执行循环体中的代码再判断条件,如果成了则执行下一次循环,否则循环终止
例如:
3,嵌套循环;定义:把一个循环放在另一个循环体内那么就行了嵌套循环,既可以是for循环嵌套while循环,也可以是while循环嵌套do while循环等等
嵌套循环就是把内层循环当成外层循环的循环体,只有内层循环为false时,才会跳出内层循环,结束外层循环的本次循环,进行外层的下一次循环
具体流程如图所示:
下面举个例子:
面向对象的基本介绍:
面向对象时相对于面向过程而言的。面向过程是:强调的是功能的行为。面向对象:是将功能封装成对象,强调了具有这个功能对象。
Java是一种面向对象的程序设计语言,java语言提供了定义类,成员变量,方法等最基本的功能。类可以被认为是一种自定义的基本数据类型。
在面向对象语言中有两个重要的概念,类和对象,其中类是某一个或一批对象的抽象,而对象才是具体的实例。就例如:人类是一个抽象的含义,而人才能作为具体的实例来看待。
其实定义类就是描述这个事物,这个事物具备的属性就是成员变量,这个事物具备的行为就是成员方法。
1,定义类:在java中定义类的简单语法例如:
2,在这里还是先复习下访问权限修饰符这里有张图片可以介绍访问权限修饰符的具体作用范围:
值得注意的是:
abstract关键字是抽象的意思,后面会详细的复习抽象类
说了类也可以被final修饰,如果类被final(最终)修饰后那么这个类不可以被继承
如果方法被final修饰那么这个方法不可以被重载,被final修饰后的变量(成员变量,局部变量)不允许再次赋值,在被final修饰的同时就要赋值,被final修饰后的变量成为常量。
3,定义成员变量:
具体格式是:[修饰符]+成员变量类型+变量名
成员变量也就是这个事物的属性,是随着这个事物的出现而出现的,因此它的作用范围是整个类。成员变量在堆中存在。
例如:public String str;
这里的修饰符可以为:public ,protected,default,priavte, static ,final,但是public ,protected,private三者只能出现其中的一种,可以与static ,final组合起来修饰成员变量
也可以不加修饰符,那么默认为default。
例如: public static String str;
4,局部变量:[修饰符]+变量类型+变量名
局部变量的作用范围只是在这个函数内部。出了这个函数那么就不存在这个变量。局部变量在栈内存中存在。
5,定义方法:
[修饰符] +返回值类型+方法名(形参){
//里面为零到多条可执行语句
}
修饰符:修饰符可以省略,默认为default,也可以为:public private protected static final abstract其中public protected private 只能出现其中之一,
final abstract只能出现其中之一,可以与static 组合起来使用
返回值类型:这里的返回值类型可以是任何数据类型包括基本类型和引用类型例如:int String 或者是Person 类,如果声明了返回值类型那么必须要一个有效的renturn语句来返回这个类型的值,注意这个值必须与声明的返回值类型相匹配,如果不需要返回值类型那么必须使用void来声明没有返回值!
无返回值的方法例如:public static void abc(String str){
}。有返回值的方法:public static String abc(String str){
return str;
}
6,匿名对象。
匿名对象是对象的一种简化形式。可以用于对对象的方法进行一次的调用,也可以当做参数进行传递。
在调用完毕后这个对象就无用了,节省了内存空间。
7,单例设计模式:解决了一个类在内存中只存在一个对象。例如:当操作一个软件的设置参数时,我们打开这个软件设置这个参数,这时封装了参数信息的类会被加载并被创建对象,用对象调用属性以便更改。改变后下次再打开次软件进行设置时又重复了这个步骤,如果不能保证两次操作的是同一个对象,那么第一个更改属性的后的对象,跟第二次的对象无关,后者还是初始化时的内容那么每次都需要设置为了保证更改一次以后都不变,我们就要保证对象的唯一性。
具体实现单例设计模式:
第一步:首先将构造函数私有化。
第二步:在本类中创建对象。
第三步:在本类中提供一个静态的方法用来向外部提供本类对象。
单例设计模式有两种创建方法:第一种随着类的加载就初始化对象(饿汉式)第二种随着类中的方法被调用时才初始化对象(懒汉式)
具体实现:
第一种:
class A{
private A(){};
private static A a=new A();
public static A getInstance(){
return a;
}
}
第二种:注意要保证线程同步。
class B{
private B(){};
private static B b=null;
public static B getInstance(){
if(b==null){
synchronized(B.class){
if(b==null){
b=new B();
}
}
}
return b;
}
}