JAVA_Lesson6(传智播客笔记之初始面向对象)

二维数组:

回顾下一维数组的定义方式: int[] arr =new int[3];

二维数组的定义格式:int[][] arr=new int[3][2]; //创建一个二维数组,该数组中有3个一维数组,每一个数组中有2个元素。

System.out.printlnarr);//打印二维数组  打印出[[I@....(因为是二维)

System.out.printlnarr[0]);//直接打印二维数组中的角标0的一维数组 打印出一维数组名的哈希值  但是若int[][] arr=new int[3][]时会打印null;

System.out.printlnarr[0][0]);//直接打印二维数组中角标0的一维数组中角标为0的元素打印出初始化值0

二维数组的内存图解过程:

 

二维数组的第二种定义方式:int[][]arr=new int[3][];

可以分别对二维数组中的每一个小数组进行初始化。

Arr[0]=new int[2];

Arr[1]=new int[1];

Arr[2]=new int[3];

 

System(实际上是一个类).out.println(arr.length);//可以打印二维数组的长度。其实就是一维数组的个数

System.out.println(arr[1].length);//打印二维数组中角标为1的一维数组的长度

Int[][] arr={{3,1,7},{5,8,2,9},{4,1}};//另外一种初始化方式

遍历如上二维数组的方式:

For(int x=0;x<arr.length;x++)

{

    For(int y=0;y<arr[x].length;y++)

    {

        System.out.pritln(arr[x][y]+”,”) //遍历二维数组

     }

}

面向对象(指挥对象做事情就可以):

对象其实就是该类实物实实在在存在的个体。

类与对象之间的关系?

类:事物的描述。

对象:该类事物的描述。

代码示例:

Class Car

{

    Int num;

    String color;

    Void run()

    {

        System.out.println(num+“...”+color);

    }

 

}

Class CarDemo

{

    Public static void main(String[] args)

    {

        Car c=new Car();//c就是一个类类型的引用变量,指向该类的对象

        c.num=4;

        C.color=”red”;

        C.run();//要使用对象中的内容可以通过对象成员来完成调用

     }

 }

类中的成员分:成员函数(行为)和成员变量(属性)。定义类其实就是在定义类中的成员。类中如果想要独立运行,里面必须要有main函数。

 Car c=new Car();//内存分析过程(堆内存默认有初始化值,为0 int类型)nullstring类型))

 

 

凡是见到一个new,就意味着创建了一个新的实体。

成员变量和局部变量的区别:

成员变量属于局部变量吧(个人的理解,对吗/说的不对

1.成员变量定义在类中,整个类中都可以访问。局部变量定义在函数,语句,局部代码块中,子在所属的区域有效。

2.成员变量存在于堆内存的对象中,而局部变量存在于栈内存的方法中。

3.成员变量随着对象的创建而存在,随着对象的消失而消失。局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。

4.成员变量都有默认的初始化值,局部变量没有默认的初始化值。

 

栈里没有找到变量,就会去堆里面找。

匿名对象(了解即可)

没有名字的对象,其实就是定义对象的简写格式。

New Car();

Car c=new Car();

C. run();//以上2句代码可以等价于new Car().run();

1. 当对象对方法仅进行一次调用的时候,就可以简化为匿名对象。(因为new一次就创建了一次实体,2次就变成了2个实体)

 

没有所指的时候,第一个对象已经变垃圾了。

 2. 匿名对象可以作为实际参数进行传递。

Car c1=new Car();

Show(c1);//以上2句代码可以等价于show(new Car());

 

基本数据类型参数传递图解(没有听讲解的时候大致已经做对了结果,但是过程分析不够透彻,仍需努力)

Class Demo1

{

    Public static void main(String[] args)

    {

        Int x=3;

        Show(x);

        System.out.println(“x=”+x);

    }

    Public static void show(int x)

    {

        X=4;//其实后面有一句默认的代码return;

    }

}
Class Demo2

{

      Int x=3;

     	Public static void main(String[] args)

       {

            Demo d=new Demo();

            d.x=9;

            Show(d);

            System.out.println(d.x);

       }

    Public static void show(Demo d)

    {

        D.x=4;

     }

 }
Demo1和Demo2的内存图解如下:

 

封装(隐藏对象的属性和实现细节,对外仅提供公共的访问方式):

  私有仅仅是封装的一种体现。在对象中私有变量,这样仅本类中可以访问,其他类是不能访问的。setAge()getAge()已经成为规范了,对私有化(private)成员变量。(默认就有2个方法对应)

  函数、类、框架均是封装的体现。一般书写格式setXxx getXxx(从第二个单词首字母都大写)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值