第六天 对象和类

类:是一种抽象的数据类型,是具备某些共同特征的实体的集合,是构造对象的模板或蓝图.(想起了自己第一次接触java一脸懵逼,现在才算差不多理解了吧)

类的定义和使用

    现实事物抽象成java代码的过程就是定义类的过程就是类定义的过程.

    比如一部手机,他可以打电话,上网等等,这就是手机所具有的功能,同时手机也有他的特性,颜色,品牌,配置等等.

    我们发现事物都有者具体的功能和特点比如我们把所有手机都有的功能用代码表示,就是类中的方法. 把手机都有的特征用代码表示就是类中的属性

    描述手机

        分析:

            手机的特点(属性):

                颜色;

                牌子;

                ...

扫描二维码关注公众号,回复: 2587595 查看本文章

            手机的功能(方法):

                打电话;

                ...

    通过代码表示就是下面类的定义格式

类定义的格式

    public class 类名{
        数据类型 属性名1;
        数据类型 属性名2;
        ...//可以编写n个属性
        修饰符 返回类型 方法名(参数){
            方法体:
            //可以写n个方法 ,和昨天的方法一样
        }
    }

        示例:

            public class Phone{
                String color;
                String brand;
                String size;
                void call(){
                    System.out.println("我可以打电话");
                }
            }

 对象:是类的一个实例(对象不是找女朋友) 有状态和行为。(自己理解是具体的一个事物,比如手机是类,具体到我的手机就变成对象了)

 用类创建对象的过程称为实例化.

创建对象的两个方式(因为类是引用类型所以也有两种方式)

1 声明并实例化对象

类名 对象名 = new 类名();


2先声明在实例化

类名 对象名= null;
对象名 = new 类名();


当实例化之后有,就可以对对象的属性和方法进行操作.

对象.属性;
对象.方法();


public class Test {
    public static void main(String[] args) {
        //定义了一个Phone类型的变量p
        Phone p = new Phone();
        /*
         * 通过p,使用Phone中的属性
         */
        //访问p中的brand品牌属性
        p.brand = "苹果6s";[为p中brand属性赋值为”苹果6s”]
        //访问p中的color颜色属性
        p.color = "白色";[为p中color属性赋值为”白色”]
        //访问p中的方法
        p.call();
    }
}

类和对象的区别: 类是对一类事物的抽象描述,而对象用于表示该事物的个体.

类中说包含的变量:

        局部变量:在方法,构造方法或者语句块中定义的变量称为局部变量,变量的声明和初始化都在方法中,方法结束后,变量会自动销毁.

        成员变量:成员变量定义在类中,方法变量以外的变量,在创建对象的时候初始化.成员变量可以被类中的方法,构造方法和特定类的语句块访问

        类变量:也在声明的类中,方法体之外,但是必须声明为static类型

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

            区别一:定义的位置不同

                定义在类中的变量是成员变量

                定义在方法中或者{}语句里面的变量是局部变量

            区别二:在内存中的位置不同

                成员变量存储在对内存的对象中

                局部变量存储在栈内存的方法中

            区别三:声明周期不同

                成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失

                局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

            区别四:初始化不同

                成员变量因为在堆内存中,所有默认的初始化值

                局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。

            (类变量之后在记)

new一个对象在内存中发生了什么:

对象内存图.JPG

两个变量又是什么样子

两个引用变量内存图.JPG


猜你喜欢

转载自blog.51cto.com/10760006/2155463
今日推荐