Java第二周总结
程序员文章站
2022-04-12 22:17:34
数组数组:可以存储同一种类型的元素的一种"容器".注:必选要保证该容器中存储的类型一致!一维数组格式:数据类型[] 数组名称;数据类型 数组名称[];初始化:动态初始化:开发者定义数组初始化的时候,指定数组的长度,系统默认给系统中的元素赋值.数据类型[] 数组名称 = new 数据类型[数组长度];数据类型 数组名称[] = new 数据类型[数组长度];静态初始化:直接指定数组的元素内容,系统指定的数组长度.数据类型[] 数组名称 = new 数据类型[] {元素1...
do-while循环语句
格式:
初始化语句;
do{
循环体语句;
步长语句
}while(条件表达式) ;
do-while循环语句和for,while循环的最大的区别就是:
循环体至少执行一次(条件不满足的情况)
for循环的嵌套
for循环语句作为循环体语句;
for(初始化语句;条件表达式;步长语句){
//循环体语句
for(初始化语句;条件表达式;步长语句){
循环体语句;
}
}
跳转控制语句
break;
continue;
return ;
break :表示结束,中断的意思
break:单独使用,没有意义(存在问题),只能switch语句或者循环语句中使用!
如果while(true)和switch一块使用的时候,
注意:break此时只能结束switch语句,while(true)的结束,可以使用System.exit(0) ;
break应用场景:只能switch语句或者循环语句中使用!
情况1:中断结束单层循环
情况2:中断结束多层循环(早期使用)
break 标签名称; 结束多层循环!
continue:继续 (结束当前循环,立即进入下一次循环)
单独使用:没有意义
continue 在 loop 外部(循环中使用)
return是结合方法去使用的,如果一个方法中有return,具体返回结果;
方法
方法:就是使用{}包起来的内容,给{}独立的代码块起一个名字,以便于复用
方法的格式
情况1:有具体返回值类型的方法定义
情况2:没有具体返回值类型的方法定义
有具体返回值类型的方法定义
定义格式:
权限修饰符 静态修饰符 返回值类型 方法名(数据类型1 变量名1,数据类型2 变量名2,......){
业务内容;
return 结果;
}
没有具体返回值类型的方法定义以及调用
定义格式:
修饰符(public static) 返回值类型 方法名(参数类型1 变量名1,参数类型2 变量名2....){
要么输出结果要么相关其他业务功能 ,没有return关键字
}
Java中针对没有具体返回值类型的方法的定义,要遵循方法的格式,提供一个关键字void 来代替返回值类型
数组
数组:可以存储同一种类型的元素的一种"容器".
注:必选要保证该容器中存储的类型一致!
一维数组
格式:
数据类型[] 数组名称;
数据类型 数组名称[];
初始化:
动态初始化:开发者定义数组初始化的时候,指定数组的长度,系统默认给系统中的元素赋值.
数据类型[] 数组名称 = new 数据类型[数组长度];
数据类型 数组名称[] = new 数据类型[数组长度];
静态初始化:直接指定数组的元素内容,系统指定的数组长度.
数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...};
数据类型 数组名称[] = new 数据类型[] {元素1,元素2,...};
简写:
数据类型[] 数组名称 = {元素1,元素2,...};
数据类型 数组名称[] = {元素1,元素2,...};
二维数组
二维数组:其实就是一个元素为一维数组的数组.
格式:
数据类型[][] 数组名称;
数据类型[] 数组名称[];
动态初始化:
格式1:
数据类型[][] 数组名称 = new 数据类型[m][n];
格式2:
数据类型[] 数组名称[] = new 数据类型[m][n];
格式3;
数据类型[][] 数组名称 = new 数据类型[][]{{元素1,元素2,...},{元素1,元素2...}};
简写:
数据类型[][] 数组名称 = ({元素1,元素2,...},{元素1,元素2,...});
面向对象
类和事物的关系:
事物:描述现实世界的真实存在泛指的东西!
类:是描述一组事物的属性和行为的集合
面向对象的思想特点:
1)更符合生活中的思想行为习惯
2)让复杂的事情简单化
3)让我们成从执行者变成了一个指挥者!
面向对象设计原则:
不断创建对象,使用对象,指挥该对象做事情!
面向对象的三大特征:
封装,继承,多态
局部变量和成员变量的区别
1)在类中的位置不同
局部变量:在方法定义中或者是方法声明上的变量
成员变量:在类中,方法外定义的变量
2)在内存中的位置不同
局部变量:在栈内存中存储 跟方法有关
成员变量:在堆内存中存储 跟类的对象有关
3)生命周期不同
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失!
成员变量:随着对象的创建而存在,随着对象的创建完毕并且使用完毕,等待垃圾回收器回收掉掉(GC)之后才消失!(不会立即被回收)
4)初始时机不同:
局部变量:在方法定义中或者方法声明上的变量,必须在使用之前进行数据初始化,否则"可能尚未初始化变量"
成员变量:跟对象有关系,在堆内存中,即使这个成员变量没有赋值,系统会根据变量的类型给这个变量进行默认初始化
形式参数是一个具体类的情况
形式参数如果是一个基本数据类型,形参的改变对实际参数没有影响. 需要什么类型的数据,传递具体的值即可!
形式参数如果是一个类(具体类),那么形式参数的改变直接影响实际参数!
形式参数如果传递的是一个数组类型,需要传递的该数组的对象
形式参数如果传递的是一个具体类(jdk提供的,我们自定义的),需要传递该类的具体对象
匿名对象
匿名对象:没有名字的对象
匿名对象的格式
new 类名() ; (前提条件:该类是一个具体类)
特点:
1.仅仅使用一次,使用完毕,从内存中会立即被释放掉! (节省内存空间,android移动端使用居多!)
2.匿名对象也可以作为参数进行传递
注意:
在使用匿名对象的时候,建议不使用多次!
封装
封装:
将类中成员变量私有化(private),对外提供公共的访问方法(权限足够大)
私有化的成员变量:只能在本类中,外界不能访问的!
private关键字的特点:
1)private可以修饰一个类中的成员变量,也可以成员方法
2)被private修饰的成员变量或者是成员方法只能在本类中方法,外界不能访问的!(保证数据的安全性)
构造方法
构造方法:
1)方法名和类名相同
2)没有具体的返回值类型
3)并且连void都没有
权限修饰符 + 方法名就是类名(){
}
构造方法主要作用:就是给该对象中的数据进行初始化!
构造方法中的注意事项:
1)在一个类中,我们不写无参构造方法,系统会默认的提供一个无参构造方法,
2)如果我们提供一个有参构造方法,系统不会在提供无参了,如果使用无参构造方法创建对象,就会报错!
(永远建议给出无参构造方法)!
一个标准类的写法:
类
1)属性私有化
2)提供对外的公共的setXXX(形式参数)/getXXX()方法
3)构造方法:
永远给出无参构造方法;
有参构造
成员方法
成员方法的分类:(非静态的成员方法)
两种情况:
要么有返回值类型
1)有返回值类型,并且有参数
2)有返回值类型,没有参数
要么没有具体返回值:void代替
1)没有返回值类型,带参
2)没有返回值类,不带参
static关键字
静态static的特点:
1)被static修饰的变量/方法 都随着类的加载而加载
2)被static修饰的 优先于对象存在
3)被static修饰的可以被多个对象共用
有共享,共用
4)被静态修饰的成员变量或者成员方法 ,
可以被类名直接访问(推荐访问方式)
类名.成员变量;
类名.成员方法();
注:
1)在static中,是没有this关键字的!
2)关于成员方法的访问问题:
非静态的成员方法
既可以访问静态的成员变量,也可以访问非静态的成员变量
既可以访问静态的成员方法,也可以访问非静态的成员方法;
静态的成员方法
静态只能访问静态
本文地址:https://blog.csdn.net/qq_37265779/article/details/107522835