黑马程序员----2015.6.12java笔记---进制--成员变量--匿名函数--构造函数

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.//10进制------>16进制(利用查表法,并且不利用StringBuffer输出结果)
          
 public static void toHex_2(int a)
            {
                
                //定义一个十六制中能用到的表
                char[] table = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
                                            // 0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15
                //定义一个用来装结果的数组
                char[] result = new char[8];
                //定义一个指针来指示有效位,指针从最大位开始。
                int pos = result.length-1;
                //当移位完a为0时,就没有必要往数组中装数据,指针也不需要移动了
                while(a != 0)
                {
                        //因为四位2进制转为一位16进制,a&15即将最后4位提取出来并计算它所代表的16进制的值。
                        //并的结果作为table的下表,正好找到所代表的16进制的值
                        //因为最后输出结果为出c3000000,而最后值为0000003c,所以从最大位开始装数据
                        result[pos--] = table[a&15];
                        //a右移4位,此方法最高位不论正负都补0
                        a = a>>>4;
                        
                }
                //从当前位+1开始输出数组
                for(int b=pos+1;b<=result.length-1;b++)
                {
                    System.out.print(result[b]+",")    ;
                }
            }    


2.//10进制转化2进制,8进制,16进制
 
      class Ary_Transform
        {
            public static void main(String[] args)
            {
                toBin(60);
                toBa(60);
                toHex(60);
            }
            
            //定义转换函数 num:要转换的10进制数
            //                         base:转换2进制:与1&   转换8进制:与7&  转换16进制与15&
            public static void transform(int num,int base,int move)
            {
                //定义查找表
                char[] cha = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
                //定义装数据的数组
                char[] result = new char[32];
                //定义指向末尾的指针
                int pos = result.length-1;
                while(num != 0)
                {
                    //查表找出对应的字符
                    char temp = cha[num&base];
                    //将结果存入数组中,从末尾开始存放
                    result[pos--] = temp;
                    /*
                        如17:0000 0000 0000 0000 0000 0000 0001 0001
                        转16进制   0000 0000 0000 0000 0000 0000 0001  0001 = 1
                                                        0000 0000 0000 0000 0000 0000 0001 = 1
                                                        所以结果为0x11;
                    */
                    num = num>>>move;
                }
                for(int x=pos+1;x<result.length;x++)
                {
                    System.out.print(result[x]);
                }
            }
            
            //转2进制
            public static void toBin(int num)
            {
                transform(num,1,1);
            }
            
            //转8进制
            public static void toBa(int num)
            {
                 transform(num,7,3);
            }
            
            //转16进制
            public static void toHex(int num)
            {
                 transform(num,15,4);
            }
        }


3.二维数组
    int[][] arr1 = new int[3][];         
    int[][] arr2 = new int[4][2];//二维数组中有4个一维数组,
                                                            //每一个一维数组中有2个元素
    int[][] arr2 = {{2,3},{1,4,6,7,2}};
    System.out.println(arr1[2]); //打印的是arr1[2]的地址
    System.out.println(arr1[2]);//打印结果是null
    //也是一种定义二维数组的方式
    int[][] arr4 = new int[3][];
    arr4[0] = new int[3];
    arr4[1] = new int[1];
    arr4[2]    = new int[2];
4.数组的一些定义方法。
    a.int[] x;   int x[];//都对
    b.int[][]y;    int y[][];  int[] y[];//都对
    c.int[] x,y[];//x是一维,y是二维
    判断:
    a.x[0] = y;      //error
    b.y[0] = x;      //true
    c.y[0][0] = x;   //error
    d.x[0][0] = y;   //error
    e.y[0][0] = x[0];//true
    f.x = y;           //error
5.面向对象的三个特征:继承性,封装性,多态
    以后开发就是找对象,建立对象,使用对象,维护对象的关系
6.描述事物其实就是在描述事务的属性和行为。
    定义类就是在描述事物,就是在定义属性和行为
7.java中的数据类型:基本数据类型:byte,short,char,int,long,float,double,boolean
                                        引用数据类型:数组,类,接口
8.成员变量和局部变量的区别?
        a.成员变量作用于整个类,局部变量作用于函数,或者语句中。
        b.成员变量在堆内存中,因为对象的存在,才在内存中存在。
            局部变量存在于栈内存中。
9.匿名对象的使用方式一:当对象的方法只调用一次,可以用    匿名对象来完成,这样写比较简化。new Car().run();
                                                    如果对一个对象进行多个成员调用,必须给这个对象起个名字。
                                 方式二:可以将匿名对象作为实际参数进行传递 change(new Car());
                                                     public static void change(Car c) {
                                                         c.num = 4;
                                                         c.run();
                                                     }
10.封装:隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
     好处:将变化隔离,便于使用,提高重用性,提高安全性。
     封装原则:将不需要对外提供的内容都隐藏起来,把属性隐藏起来,提供公共的方法对其访问。
11.private:私有,权限修饰符,用于修饰类中的成员(成员变量和成员方法);    
     私有只有在本类中有效。
     私有只是封装的一种表现形式。
12.构造函数
        特点:1.函数名与类名相同
                    2.不用定义返回值类型
                    3.不可以写return语句
        作用:给对象进行初始化
        注意:多个构造函数是以重载的形式存在的。    
13.对象一建立就会调用与之对应的构造函数。
        构造函数的作用,可以用于给对象进行初始化。    
        当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数。
        当在类中自定义了构造函数后,默认的构造函数则不定义。
        构造函数是在对象一建立就运行,给对象初始化。
        而一般方法是对象调用才执行
        一个对象建立构造函数只运行一次,而一般函数可以被对象调用多次。
14.什么时候定义构造函数呢?
        当分析事物时,改事物存在就具备一些特性或行为,那么将这些内容定义在构造函数中。    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值