技能点:
1.分支结构.循环结构;
2.嵌套结构;
3.数组;
面向对象
4.类与对象.、重载
5.构造方法:
---------------------------------------------------------------------------------------------------------------------------------
一.分支结构.循环结构
1.分支结构
1)if-else-if结构:
2)switch-case结构:
用在switch结构中的类型:byte.short.char.int.string.枚举;
2.循环结构
for、while、do....while;
a.定义:反复执行一段相同或相似的代码;
b.循环三要素:
循环变量的初始化.循环变量的条件.循环变量的改变;
c.循环结构的选择:
1) 是否与次数有关:有关首选for,无关再判断;
2)一三要素是否相同:若相同,首选do...while;若不同,选while;
1)for;
1. 语法: for(要素1;要素2;要素3){
循环体-------------反复执行的代码;
}
2.执行过程:1243243243243。。。。2
3.作用域:for中循环变量的作用域,仅在当前for中;
4.特殊格式:
int num=1;for(;num<=9;num++){}
for(;;){//没有条件的循环就是死循环}
2)while;
3)do....while;
二.嵌套结构:
1. 特点:(循环套循环)
a.外层走一次,内层走所有次;
b.外层表示行,内层表示列;
c. 嵌套层数越少越好;
2.关键字:
break :跳出当前一层循环;------------------------------------------用在switch和循环中;
continue:跳出循环体中的剩余语句进入下一次循环;------------用在continue中;
补充知识;
1)变量的同名问题:(作用域重叠,变量不能同名)
2)水平制表位 \t,固定占8位;
3)默认值规则;boolean------false;
4)数组下标越界异常:ArrayIndexOutOfBoundsException;
5)单词:
三、数组
1.定义、初始化、访问、遍历;
a.定义:
int[] arr=new int[5];
double[] arr1=new double[6];
boolean[] arr2=new boolean[7];
b.初始化:
int[] arr=new int[5];//00000
int[] arr1={1,3,5};
int[] arr2=new int[]{1,3,5};
int[] arr3;
//arr3={1,3,5}; //编译错误,此种方式必须声明同时初始化;
arr3=new int[]{1,3,5};
c.访问:数组下标
int[] arr=new int[5];
arr[0]=100;
arr[3]=400;
arr[4]=500;
System.out.println(arr.length);
System.out.println(arr[arr.length-1]);
d.遍历:
int[] arr=new int[5];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.radom*100);
System.out.println(arr[i]);
}
2.复制、扩容、排序
a.复制:
int[] arr={1,3,5,7,9};
int[] arr1=new int[5];
System.arraycopy(arr,1,arr1,2,2);//00350 //2复制的元素个数;
2.int[] arr={1,3,5,7,9};
int[] arr2=Arrays.copyof(arr,6);//6目标数组的长度;
b.扩容
int[] arr={1,3,5,7,9};
arr=Arrays.copyof(arr,arr.length+1);
c.排序问题
int[] arr=new int[5];
for(int i=0;i<arr.length;i++){
arr[i]=(int)(Math.random*100);
}
Arrays.sort(arr);
面向对象
四、类与对象、重载;
1.类与对象
a.类是对象的模板,对象是类的具体实例;
b.类中包含成员变量(属性)与方法(功能);
2.重载;
a.发生在同一类中,方法名相同,参数列表不同;
b.编译会根据签名自动绑定方法(签名=方法名+参数列表);
public class OverloadDemo{
public void main(String[] args){
Aoo o=new Aoo();
o.show();
o.show("CKX");
o.show(20);
o.show("CKX",20);
o.show(20,"ckx");
}
}
public class Aoo{
void show();
void show(String name);
void show(int age);
void show(String name,int age);
void show(int age,String name);
//int show(){return}; //与返回值类型无关
// void show(String age){};//重载与参数名称无关;
}
五、构造方法;
1.构造方法
*作用:给成员变量赋初值;
*语法:与类同名,没有返回值类型(连void都没有);
*调用:new方法时自动调用;
public class Student{
String name;
int age;
String address;
Student(String name,int age,String address){
this.name=name;
this.age=age;
this.address=address;
void study(){
System.out.println(name+"在学习");
}
void sayHi(){
System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
}
}
}
public class ConsDemo{
public void main(String[] args){
//Student zs=new Student(); //编译错误,student类没有无参构造;
Student zs=new Student("CKX",20,"JMS");
zs.name();
zs.age();
zs.address();
}
}
2.this
用在方法中 ,指代调用方法的那个对象,方法中访问成员变量时默认有个this;
this的用法:
this.成员变量名------访问成员变量;
this.方法名()------------调用方法;
this()----------------------调用构造方法;
3.null,表示空;
*表示引用数据类型数组的默认值;
*NullpointerException:空指针异常;
4.引用类型数组
*给引用类型数组元素赋值,需要new 个对象;
5.内存管理:由JVM管理;
*堆:new 出来的对象(成员变量、数组元素);
*栈:局部变量(包括方法的参数);
*方法区:
注意:基本类型中装的是具体的数,引用类型变量装的是堆中对象的地址;