JAVA小白的学习总结第二周

1.水仙花数

1.1什么是水仙花数?

      水仙花数为三位数,并且每个位数上的立方和为这个数本身,那么这个数就为水仙花数.

      比如:三位数为 abc  ,如果这个三位数满足:a^3+b^3+c^3=abc 那么就称abc为水仙花数.

1.2如何用java程序输出水仙花数

class NarcissisticNumber{
    public static void main(String[] args){
        for(int i =100 ; i<=999 ; i++){
            int a = i%10;     //个位
            int b = i/10%10; //十位
            int c = i/100;  // 百位
            if((a*a*a+b*b*b+c*c*c)==i){ //判断是否满足水仙花数的要求
                System.out.println("水仙花数为:"+i); // 如果满足要求则输出
            }
        }
    }
}

       水仙花数为:153,370,371,407

2.循环语句

   2.1 for 循环

   2.2 while 循环

          while循环的语句格式

class WhileDemo{
    public static void main(String[] args){
        初始化语句;
        while(条件表达式){
            循环体语句;
            控制体语句;
        }
    }

}

     while循环的使用

class WhileDemo1{
	public static void main(String[] args){
		
		//定义初始变量
		int i = 0;
		
		//定义求和初始变量
		int sum = 0;
		
		//使用while求和
		while(i<=100){ //判断条件是否满足如果满足则执行while内的循环
			sum +=i;
			i++;
		}
		System.out.println("1~100之间的和为:"+sum);	
		
	}
	
	
}

2.3 do while 循环

         do while循环的语句格式

class DoWhileDemo{
    public static void main(String[] args){
        初始化语句;
        do{
        
            循环体语句;
            控制体语句;
        }while(条件表达式);
    }

}
/*
执行流程:初始化语句先给变量赋值,直接执行循环语句,然后执行控制语句,接着在判断条件表达式是否成立
如果成立则继续执行循环语句和控制语句,直到条件表达式不成立则退出循环.
*/

2.4 while 循环和for 循环的区别

        1.语句的格式不一样;

        2. for循环语句结束后变量将会在内存中释放掉,节省内存空间,

           while 循环语句结束后依然可以访问变量,占用内存比较大;

2.5 do while循环和 for 循环 while 循环的区别

       do while循环首次执行循环体没有条件,for循环和while循环首次执行循环体都需要满足条件表达式;即do while循环至少执行一次.

2.6两个死循环

//第一个死循环
for(;;){
    循环语句;
}

//第二个死循环
while(true){
    循环语句;
}

3.跳转控制语句

     break:中断,结束循环,不能单独使用无意义;

     contiune:结束当前循环进入下一次循环,不能单独使用;

     return: 结束方法,可以单独使用;

4.方法

      方法的概念:使用{}将代码包裹起来,并给代码起一个名字(方法名),以后可以直接使用方法名来调用这段代码的功能.

   1.有返回值类型的方法的定义以及调用

public static 返回值类型 方法名(形式参数类型 形式参数名称){
        业务要求;
        return 结果(要和返回值类型保持一致);
    
}

              注:使用时要注意两个明确 1).明确返回值的类型; 2). 明确参数类型以及参数的个数;

    有返回值方法的调用

           1).输出调用;  直接输出返回的结果,无法对返回值进行下一步的操作.

           2).赋值调用: 获取返回值的结果还可以继续进行操作.

                     返回值类型   变量名 = 方法名(实际参数);

  2.无返回值类型的方法的定义以及调用

public static void  方法名(形式参数类型1 变量名1;形式参数类型2  变量名2;....){
                直接输出语句或者其他业务操作;
}

       无返回值方法的调用

                            方法名(实际参数);

5.冒泡排序

class Demo2{
	public static void main(String[] args){
		
		int [] arr = {23,25,13,54,62,34,16};//创建一个数组
		
		getArr(arr);
		System.out.println("-------------");
		bubboleSort(arr);
		getArr(arr);
	}
	
	//创建数组冒泡排序的方法
	public static void bubboleSort(int [] arr){
		for(int i = 0;i<arr.length-1;i++){
			for(int j = 0;j<arr.length-1-i;j++){
				if(arr[j]>arr[j+1]){
					int temp = arr[j];
					arr[j]=arr[j+1];
					arr[j+1] = temp;
				}
			}
				
			
		}
	}
	
	//创建遍历数组的方法
	public static void getArr(int [] arr){
		System.out.print("[");
		for(int i = 0;i<arr.length;i++){
			if(i==arr.length-1){
				System.out.print(arr[i]+"]");
			}else{
				System.out.print(arr[i]+", ");
			}
			
		}
		
	}
}

6.方法重载(overLoad)

     概念:方法名相同,参数列表不同,与返回值无关的多种方法可以成为方法重载;

                  其中参数列表不同分为 1.数据类型不一样,参数个数不一样,   2. 参数个数一样但是数据类型不一样;

7.数组

   1.一维数组

         什么是数组:可以储存多个相同类型元素的一种容器.

         数组的定义:

                            数据类型 [ ]  数组名称;

                            数据类型   数组名称 [ ];

         数组的初始化:

                              1)动态初始化:指定了数组的长度,系统默认给定数组的元素值;

                              2).静态初始化:指定了具体的元素内容,系统默认指定数组的长度;

       动态初始化:

                     数据类型 [ ]   数组名称 =   new 数据类型  [数组长度];

                      int [ ]   arr  = new  int [3] ;   //创建了一个长度为三的一维数组

       静态初始化:

                      数据类型 [ ]  数组名称  = new 数据类型 []{元素1,元素2,元素3,...... };

                      int [] arr  = new int[] {11,22,33,44};  //创建了一个内容为11,22,33,44长度为四的一维数组

           简化格式: 数据类型  []  数组名称 ={元素1,元素2,元素3,.....}

       数组元素的访问:  数组名称 [角标]  //即可获取对应角标的数组元素,(注:数组的角标是从0开始的)

   一维数组的遍历

for(int i= 0;i<arr.length;++){
    Systyem.out.print(arr[i]+"\t");
}

 2.二维数组

 

定义以及初始化:格式

    三种:    
        格式1:
            数据类型[][] 数组名称 = new 数据类型[m][n] ;
            //m:表示有m个一维数组
            //n:表示每一个一维数组的长度
            
        格式2:数据类型[][] 数组名称 = new 数据类型[m][] ;
            //m:表示二维数组中有m个一维数组
            每一个一维数组的长度需要动态给定 
            //举例:arr[0] = new int[2] ;
            
        格式3:静态初始化
            数据类型[][] 数组名称 =new 数据类型[][]{{元素1,元素2,,,},{元素1,元素2...},{...}} ;
            简写格式:
                数据类型[][] 数组名称 = {{元素1,元素2,,,},{元素1,元素2...},{...}} ;
                
二维数组:基本遍历功能

for(int x = 0 ; x < arr.length ; x ++){
        //里面每一个一维数组
        for(int y = 0 ; y < arr[x].length ; y ++){
            //输出arr[x][y] +"\t"
            System.out.print(arr[x][y]+"\t");
        }
    }

  二维数组的应用:打印杨辉三角形

import java.util.Scanner ;
class Arr2Test{
	public static void main(String[] args){
		
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//提示并接收数据
		System.out.println("请您输入一个数据:") ;
		int n = sc.nextInt() ;
		
		//定义二维数组,动态初始化
		int[][] arr = new int[n][n] ;
		
		//给二维数组中的数据赋值(给任何的一列和最后一列赋值) 
		//将定义二维数组遍历
		for(int x = 0 ; x < arr.length ; x ++){
	
			arr[x][0] = 1 ;
			arr[x][x] = 1 ;
		}
		
		//从第三行开始,中间的数据的值等于上一行的前一列+上一行的本列之和
		for(int x = 2 ;x < arr.length ; x ++){
			//内层循环
			
			for(int y = 1 ; y <=x -1; y ++){
				//中间的数据的值等于上一行的前一列+上一行的本列之和
				arr[x][y] = arr[x-1][y-1] + arr[x-1][y] ;
				
			}
		}	
		//跟99乘法表规律:y的角标值 y<=x 的值
		for(int x = 0 ; x < arr.length ; x ++){
			for(int y = 0 ; y <=x ; y ++){ //x = 0 (第一行), y=0(第一列)  ,y<=1(0,1)
				System.out.print(arr[x][y] +"\t") ; //arr[0][0] arr[1][1]
			}
			System.out.println() ;
		}
	}
}

 

8.面向对象

        面向对象的特点:

                                               1). 符合现实世界事物生活中的思想行为习惯;

                                               2). 使我们的角色发生的改变(从执行者变为了指挥者);

                                               3).让复杂的事情简单化;

        java中面向对象的设计原则:

                          需要不断的创建对象,使用对象,指挥对象做事情.比如键盘入如Scanner.

         创建面向对象的格式:

                       创建对象的格式:
                                    类名  对象名  = new 类名() ;
            
                      要给具体的人赋值属性 :
                                   对象名.成员变量= 值; (需要和数据类型保持一致!)
            
                       使用人的功能:学习,打游戏,睡觉
                                  对象名.成员方法名() ;

       面向对象的举例应用:

/*
学生有姓名,年龄,性别属性,行为有学习,睡觉以及玩游戏的行为,请使用面向对象方式书写学生类并且进行测试

*/
//测试类
class Demo3{
	public static void main(String[] args){
		//创建对象
		Student student = new Student();
		student.name="张某某";
		student.age = 18;
		student.sex = "男";
		
		System.out.println("姓名:"+student.name+" , 年龄:"+student.age+",  性别:"+student.sex);
		student.study();
		student.sleep();
		student.game();
	}
	
}
//学生类
class Student{
	//成员变量
	String name;
	int age;
	String sex;
	
	//成员行为
	public void study(){
		
		System.out.println("学习使我快乐");
	}
	public void sleep(){
		System.out.println("学习累了就睡觉");
	}
	public void game(){
		System.out.println("睡觉起来就玩游戏");
	}
}

 

 

 

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值