A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李振在黑马 中级黑马   /  2015-9-11 15:25  /  925 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

函数
定义特定功能,提高代码的复用性。Java中对功能的定义是通过函数的形式体现的。
函数定义的格式:修饰符  返回类型  函数名(参数类型 形式参数1,参数类型 形式参数….)
{        
               执行语句;
                                返回值类型;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型
形式参数:是一个变量,用于存储调用函数传递给函数的实际参数
Return:用于结束函数
返回值:该值会返回给调用者。
函数只有被调用才会执行。
对于没有返回值类型用void  可以不写return
函数之间是平级的只能调用不能在函数里边定义新函数。
函数的小练习:定义一个功能可以打印矩形,行列可以随意控制。
定义一个 功能打印99乘法表,也可打印到其他数字的乘法。
//打印一个矩形可以根据提供的两数控制行列
class TextHanShu{
    public static void printJu(int a,int b){
        for(int x=0;x<a;x++){
        for(int y=0;y<b;y++){
        System.out.print("*");}
        System.out.println();}
}
    public static void main(String[] args){
             printJu(3,5);
        printJu(5,7);}
}   
//打印九九乘法表。可以打印到任意数
class Print99{
    public static void printCC(int a){
        for(int x=1;x<=a;x++){
           for(int y=1;y<=x;y++){
           System.out.print(y+"*"+x+"="+y*x+"\t");}
           System.out.println();}
}
    public static void main(String[] args){
            printCC(9);}
}        

函数的重载
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。与返回值无关,只看参数列表。
什么时候用重载?
但定义的功能相同,但参与运算的未知内容不同。
就可以定义一个函数以表示该功能,方便阅读。通过参数列表的不同区分多个同名函数。
注:参数是有顺序的。
数组
同一种类型数据的集合,其实数组就是一个容器。
自动给数组中的元素从0开始编号,方便操作这些元素。
格式1      元素类型[] 数组名=new 元素类型{元素个数或数组长度}
示例:int[] arr=new int[5];
格式2  元素类型[] 数组名=new 元素类型[]{元素,元素,……}
Int[] arr=new int[]{3,5};      int[] arr={3,5,1,7};
内存结构:栈内存:用于存储局部变量,当数据使用完,所占空间自动释放。
  堆内存:数组和对象,通过new建立的实例存放在堆内存中。
每一个实体都有内存地址
实体中的变量都有默认初始化值
实体不在使用,会在不确定的时间内被垃圾回收器回收。
打印数组的所有元素     数组元素求和  打印数组与定义时的数组格式一样


//打印数组中所有元素
class TextArray{
    public static void main(String[] args){
        int[] arr=new int[6];
        for(int x=0;x<arr.length;x++)
        System.out.println("arr["+x+"]="+arr[x]);
}
}

//打印所有数组元素的和
class TextArray_2{
    public static void main(String[] args){
        int[] arr={2,4,6,1,7,9};
        int sum=0;
        for(int x=0;x<arr.length;x++){
        sum=sum+arr[x];}
        System.out.println("sum="+sum);
}
}

//打印数组元素用,隔开
class TextArray_3{
    public static void main(String[] args){
        int[] arr={4,6,2,3,8,12};
        System.out.print("[");
        for(int x=0;x<arr.length;x++){
        if( x!=arr.length-1)
        System.out.print(arr[x]+",");
        else
        System.out.println(arr[x]+"]");}

}

数组的获取最大值

/*class GetMax{
  public static int getMax(int[] arr){
        int temp=arr[0];
        for(int x=1;x<arr.length;x++){
        if(arr[x]>temp)
        temp=arr[x];}
        return temp;
}
    public static void main(String[] args){
        int[] arr={3,5,7,2,87,34};
        int a=getMax(arr);
        System.out.print(a);}
} */
//另一种方式
class GetMax{
    public static int getMax(int[] arr){
        int temp=0;
        for(int x=1;x<arr.length;x++){
        if(arr[x]>arr[temp])
        temp=x;}
         return arr[temp];
}
    public static void main(String[] args){
        int[] arr={3,5,7,8,9,1,2};
        int b=getMax(arr);
        System.out.print(b);}
}




}       





数据的排序小程序
class ArraySort{
    public static void arraySort(int[] arr){
        int temp=0;
        for(int x=0;x<arr.length-1;x++){
        for(int y=x+1;y<arr.length;y++){
        if(arr[x]<arr[y]){
        temp=arr[x];
        arr[x]=arr[y];
        arr[y]=temp;}
}
}
}      
    public static void main(String[] args){
        int[] arr={3,5,1,2,6,8,4};
        arraySort(arr);
        for(int x=0;x<arr.length;x++)
        System.out.println(arr[x]);
}
}             


冒泡排序
class MaoP{
        public static void maoPao(int[] arr){
                int temp=0;
                for(int x=0;x<arr.length-1;x++){
                        for(int y=0;y<arr.length-x-1;y++){
                                if(arr[y]<arr[y+1]){
                                        temp=arr[y];
                                        arr[y]=arr[y+1];
                                        arr[y+1]=temp;
                                }
                        }
                }
        }
        public static void main(String[] args){
                int[] arr={3,5,11,7,8,2,9,11};
                maoPao(arr);
                for(int x=0;x<arr.length;x++){
                        System.out.println(arr[x]);
                }
        }
}



折半查找法

class ZheBanCZ{
        public static int zheBan(int[] arr,int a ){
                int m=0;int n=arr.length;int min=(m+n)/2;
                while(arr[min]!=a){
                if(arr[min]<a)
                            m=m+1;
                else if(arr[min]>a)
                            n=n-1;
                    min=(m+n)/2;
                    if(min>n)
                            return -1;
            }
                return min;
                }
                public static void main(String[] args){
                        int[] arr={2,4,6,8,12,21};
                      int a =zheBan(arr,1);
                      System.out.println(a);               
                }

}


十进制转换成二进制,八进制,十六进制的小程序。
//其中,a代表输入的数,m与的数(二进制是1八进制7十六进制是15)n代表右移数(二进制是1位八进制是3位十六进制是4位)
class ToBHB{
        public static void main(String[] args){
                toBin(60);
                toHex(60);
                toOctal(60);
        }
        public static void toBin(int a){
                toBHB(a,1,1);
        }
        public static void toHex(int a){
                toBHB(a,15,4);
        }
        public static void toOctal(int a){
                toBHB(a,7,3);
        }
        public static void toBHB(int a,int m,int n){
                char[] chs={'0','1','2','3','4','5','6','7','8','9','a','b','c','e','f'};
                char[] arr=new char[32];
                int pos=arr.length;
                while(a!=0){
                        int temp=a&m;
                        arr[--pos]=chs[temp];
                        a=a>>>n;
                }
                for(int x=pos;x<arr.length;x++){
                        System.out.print(arr[x]);
                }
        }
}

17 个回复

倒序浏览
不好意思,忘了a=0的情况了在public static void toBHB(){
后变加一个if判断语句如果a==0那么打印输出0并return返回不需执行后边的代码了
回复 使用道具 举报
都是新手 你看到哪了
回复 使用道具 举报
总结的不错。
回复 使用道具 举报
一切为了技术分啊
回复 使用道具 举报
加油,给你鼓励
回复 使用道具 举报
加油加油,一起加油
回复 使用道具 举报
kuikui 中级黑马 2015-9-11 22:54:19
8#
很熟悉,敲了N次了
回复 使用道具 举报
好认真!点个赞哥们!一起加油!
回复 使用道具 举报
倦鸟识山 发表于 2015-9-11 18:05
都是新手 你看到哪了

面向对象this的应用,看到这里有点卡壳,正试着敲代码。
回复 使用道具 举报
都是新手+1,态度决定一切
回复 使用道具 举报
希望媒体进步一点点!!!
回复 使用道具 举报
加油加油加油加油加油
回复 使用道具 举报
加油,继续努力.
回复 使用道具 举报
,,,支持下,同样
回复 使用道具 举报
再打个酱油吧,
回复 使用道具 举报
赞!!!!!!!!!!!
回复 使用道具 举报
很好的笔记
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马