java的循环结构
- while循环
public class Hello{
public static void main(String[] args){
int a = 1;
while (a<10){
System.out.println(a);
a++;
};
}
}
运行结果:
1
2
3
4
5
6
7
8
9
- for循环
public class Hello{
public static void main(String[] args){
for (int a = 0; a<10; a++){ // a++是System.out.println()执行结束之后,在进行自加,从运行结果就可以看出来
System.out.println(a);
};
}
}
运行结果:
0
1
2
3
4
5
6
7
8
9
- do … while 循环
public class Hello{
public static void main(String[] args){
int a = 0;
do {
System.out.println(a); // 不管条件是否成立这里的代码至少执行一次,因为先执行这里面的代码,然后再执行while进行判断条件
a++;
};
while ( a < 10); // 注意这个;需要带上
}
}
运行结果:
0
1
2
3
4
5
6
7
8
9
java的if…else语句与switch…case语句
- if else
public class Hello{
public static void main(String[] args){
int a = 10;
if (a < 20){
System.out.println("数字比20小");
} else {
System.out.println("数字比20大");
};
}
}
运行结果:
数字比20小
- if …else if …else
public class Hello{
public static void main(String[] args){
int a = 10;
if (a == 20){
System.out.println("您输入的是20");
} else if (a == 10){
System.out.println("您输入的为10"};
} else {
System.out.println("您输入的既不是20也不是10");
};
}
}
运行结果:
您输入的为10
- switch … case
public class Hello{
public static void main(String[] args){
int a = 10;
switch (a){
case 10:
case 30: // case可能不仅仅存在一个
System.out.println("10");
break;
case 20:
System.out.println("20");
break;
case 30:
System.out.println("30");
break;
default:
System.out.println("default"); // 如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序 结束
}
}
}
运行结果:
10
注意:这里的break是确保每一个分支只能单独执行,不能同时执行,如果去掉这段代码中的所有break,那么运行结果就是 10 \n 20 \n 30
类、对象、方法
// 新建一个Student.java文件
public class Student {
private String name; // 成员变量
private int age;
public static void main(String[] args){
}
// 这是没有参数的构造方法
public Student() {
super();
// TODO Auto-generated constructor stub
}
// 这是有参数的构造方法
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
};
public void rap(String other){ // String为other的类型,必须进行声明
System.out.println(name +"和"+ other + "are raping");
};
}
// 新建一个Rap.java文件
public class rap {
public static void main(String[] args){
Student kun = new Student("蔡徐坤", 20); // 使用关键字new来创建一个对象, kun为对象名称, Student为对象类型
System.out.println(kun); // Student [name=蔡徐坤, age=20]
kun.rap("老师"); // 蔡徐坤和老师are raping // 通过.的方式来调用方法,并传递参数
}
}
继承
// extends 父类 就是继承了父类
public class Student2 extends Student{
public Student2(String name, int age){
super(name, age): // 必须有这个super
}
}
继承的特性:
1、子类拥有父类非private的属性、方法
2、子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
3、子类可以用自己的方式实现父类的方法
4、java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类
接口
接口的特征:
1、 接口是隐式抽象的,当生命一个接口的时候,不必使用abstract关键字
2、接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字
3、接口中的方法都是公有的,定义方法的时候的关键字只能是public
4、接口无法进行实例化
// 定义一个接口, 使用关键字interface
public interface Animal{
public void eat();
public void run();
}
// 继承接口的方式使用关键字implements
// 注意,继承接口的类,必须实现接口中所有的方法
public class Dog implements Animal{
public void eat(){
System.out.println("狗仔吃");
}
public void run(){
System.out.println("狗在跑");
}
}
- 抽象类
抽象类的特征:
1、不是完整的
2、在面向对象的概念中,所有的对象都是通过类来描绘,但是反过来并不是所有的类都是用来描绘对象的,如果一个雷中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
3、抽象类不能被实例化
4、只能通过继承访问,只有一个非abstract修饰的类,才需要实现其中的方法
5、其中定义的方法没有方法体
// 定义一个抽象类
public abstract class Abstract{
public abstract void name(); // 抽象类中定义方法需要加关键字abstract,与接口相同的是不需要有方法体,子类会进行实现
}
// 其他类继承抽象类的方法
public class LiLei extends Abstract{
public void name(){
System.out.println("hello, my name is lilei");
}
}
方法的重写和重载
- 重写:子类对父类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变,即外壳不变,核心重写
- 重载:同名方法,但是参数和返回值可以不同,其参数列表必须修改,返回值可以修改。重写的参数列表和返回值一定不能修改。