java第二周总结

do while循环

 初始化语句:
do{
 循环体语句;
 步长语句;
 }while(条件表达式);

跳转控制语句:

 (1)break;
      break:中断结束单层循环;中断多层循环;
(2)continue:
     continue:继续(结束当前循环,立即进入下一次循环)
     单独使用:没有意义,continue在loop外部(循环中使用)
(3)return:
       return:一般很少单独使用,在结束方法时使用
       return是结合方法去使用的,如果一个方法中有return,具体返回结果;

数组

	数组是一种可以存储同一种类型元素的容器
	数据类型[]  数组名称;
	数据类型 数组名称[];
	动态初始化的格式:
			数据类型[] 数组名称 = new 数据类型[数组长度] ;
	静态初始化的格式:
			数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,元素3……};
			数据类型[] 数组名称={元素1,元素2,元素3……}
			访问数组 中的元素内容:
					数组名称[数组的角标(从0开始编号)]
			        数组有一个特定的属性:length
	    String:没有length属性,length()
		集合中:没有length属性,size()
冒泡排序的思想:
		两两比较,第一次比较完毕之后,最大出现在最大索引处,依次这样,可以得到一个排序的数组,两两比较,大的往后方法,比较的次数:数组长度-1次
		排序代码
		for(int x = 0 ; x < arr.length-1 ; x ++){
			for(int y = 0 ; y < arr.length-1-x ; y++){
				if(arr[y] > arr[y+1]){
					int temp = arr[y] ;
					arr[y] = arr[y+1] ;
					arr[y+1] = temp ;
				}
			}
		}
1.二维数组的概念:
  元素是一个一维数组
2.有几种格式
格式1:
		数据类型[][] 数组名称  = new 数据类型[m][n] ;
		m:表示一维数组的个数
		n:表示每一个一维数组中的长度
		格式2:需要动态给定一维数组的长度.
			数据类型[][] 数组名称 = new 数据类型[m][] ;  
格式3:静态初始化
	数据类型[][] 数组名称= new 数类型[][]{{元素1,元素2,,,},{元素1,元素2,3..},{...}};
			简写格式:
	数据类型[][] 数组名称 = {{元素1,元素2,,,},{元素1,元素2,3..},{...}} ;				
3.二维数组的遍历(掌握)
   int[][] arr = {{1,2,3},{4,5},{6}};  

面向对象

思想特点:
			1)更符合生活中的思想行为习惯
			2)让复杂的事情简单化
			3)角色发生变化(执行者--->指挥者)
	设计原则:
	不断地创建对象,使用对象,指挥对象做事情!
面向对象的三个特征
       封装,继承和多态!
成员变量和局部变量区别
	1)在类中的位置不同
			局部变量:是在方法定义中或者方法声明上
			成员变量:是在类中,方法外
	2)在内存中的位置不同
			局部变量:在栈内存中
			成员变量:在堆内存中
	3)生命周期不同:
			局部变量:随着方法调用而存在,随着方法调用完毕消失
			成员变量:随着对象的创建而存在,随着对象的使用完毕,等待GC垃圾回收器回收掉,变量才消失.
	4)初始化时机不同:
		局部变量:在使用之前必须对变量初始化,否则出现错误."可能尚未初始化变量"
		成员变量:可以不初始化,跟对象有关系,加载进堆内存中,系统会根据它的类型来进行默认初始化!
Java内存分配
	栈内存:方法加载进栈(里面存储局部变量)
	堆内存:new出来的东西 new 类名() ;     (成员变量)
	方法区:存储一些字节码文件对象(xxx.class),static相关的,字符串常量池等等... 
	(Java代码经历三个阶段:Source(源码),CLASS阶段(反射完成的),
	RUNTIME阶段(运行阶段)   反射中讲关于java经历的三个阶段)
	本地方法区:和系统相关
	寄存器:和cpu有关系
形式参数如果是基本数据类型,形式参数的改变对实际参数没有影响
形式参数如果是引用类型,数组,类(具体类),形式参数的改变会直接影响实际参数!
    传递如果是数组----->实际参数 需要传递---创建该数组对象
    传递的如果是类:具体类----->实际参数 需要传递该类的具体对象
封装:(保证的数据的安全性!)
		将一个类的中的(属性)成员变量私有化,然后对外提供公共的访问方法;
		setXXX(形式参数)getXXX()方法(给成员变量赋值和获取值)	
this:代表当前类的对象的地址值引用,  局部变量和成员变量出现了冲突(局部变量隐藏了成员变量)
	this.成员变量;
	this.成员方法();
	this() ; 访问本类的无参构造方法
	this("..");访问本类的有参构造方法(根据参数类型)
private的特点:
 1)private可以修饰一个类中的成员变量,也可以成员方法
2)被private修饰的成员变量或者是成员方法只能在本类中方法,外界不能访问的!(保证数据的安全性)
 构造方法
 	1)方法名和类名相同
    2)没有具体的返回值类型
	3)并且连void都没有
	格式:
		权限修饰符 类名就是方法名(){  //无参/有参构造方法
		}
		作用:对数据进行初始化(修改默认初始化的内容)
关于静态static的特点:
		1)被static修饰的变量/方法都随着类的加载而加载
			class xxx{} ----> 通过javac 编译xxx.java文件		--->编译没有问题(Java语法校验)---->产生xxx.class文件   
		2)被static修饰的 优先于对象存在
			回想main :被静态修饰符: jvm调用它
			public static void main(String[] args){	
			}
		3)被static修饰的可以被多个对象共用 
			有共享,共用
			举例:
				班级的编号(同一个班级的都在共用编号)
				水杯(不能被共用)
			也在告诉我们,什么时候将变量定义静态变量!
		4)被静态修饰的成员变量或者成员方法 ,
				可以被类名直接访问(推荐访问方式)
					类名.成员方法;
					类名.成员方法();
				但是,也可以用该类对象来访问该成员(不推荐的!)
使用static关键字的注意事项:
		1)在static中,是没有this关键字的! (this:代表当前类的对象的地址值,对象已经创建了而static修饰的和类有关系);
		2)关于成员方法的访问问题:
				非静态的成员方法
					既可以访问静态的成员变量,也可以访问非静态的成员变量
					既可以访问静态的成员方法,也可以访问非静态的成员方法;
				静态的成员方法
					简单记:静态只能访问静态
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值