黑马程序员技术交流社区

标题: 类与对象 / 封装 / 构造方法 [打印本页]

作者: 半度微凉1    时间: 2018-6-17 20:38
标题: 类与对象 / 封装 / 构造方法
一、类与对象 封装 构造方法:
面向过程:注重完成事物的过程
面向对象: 对象=事物,面向事物,注重事物的本身,而事物本身是不是有属性和行为。

类和对象
概念:
类:是一组相关属性和行为的集合。
对象:一类事物的具体实现。对象是类的实例,具有这个类的属性和行为;
类和对象的关系:
        类是对一类事物的描述,是抽象的。
        对象是一类事物的实例,是具体的。
        类是对象的模板,对象是类的实体。

类:属性:事物的描述 -->成员变量
       行为:事物能够做什么  -->成员方法
       
使用:
成员方法  写在没有main方法的类中
普通方法  写在有main方法的类中

格式:

public class 类名{
        //成员变量 -->和定义的变量一样,位置不同,类中方法外
        //成员方法 --> 和以前的方法相似;就是没有了static
        }

对象的使用:
      类名 对象名 = new 类名();
      数组形式: 数据类型 [ ] 数组名 = new  数据类型 [数组长度 ];

调用:
1、对象名 . 成员变量   
2、对象名 . 成员方法( );

如何使用对象               
        1. 导包:也就是指出需要使用的类,在什么位置。
        import 包名称.类名称;
        对于和当前类属于同一个包的情况,可以省略导包语句不写。
        2. 创建,格式:
        类名称 对象名 = new 类名称();
        3. 使用,分为两种情况:
        使用成员变量:对象名.成员变量名
        使用成员方法:对象名.成员方法名(参数)
        (也就是,想用谁,就用对象名点儿谁。)
        注意事项:
        如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样。
       
成员变量和局部变量的区别:
1、在类中的位置不同*【重点】
        成员变量 在类中,方法外
        局部变量 在方法中
2、作用域范围不同*【重点】
        成员变量 这个类中都可以使用
        局部变量 只有这个方法中能使用,出了方法就不能用了
3、初始化的默认值不同*【重点】
        成员变量:有默认值
        局部变量:没有默认值
4、在内存中的位置不同
        成员变量:堆内存
        局部变量:栈内存
5、生命周期不同
        成员变量:随着对象的创建而生存,随着对象的消失而消失
        局部变量:随着方法的调用而生存,随着方法的调用完毕而消失


二、封装       
面向对象三大特征:封装,继承,多态
概念:       
1、把一段代码抽取出来,放到一个大括号中,形成一个单独的功能这个过程叫做封装。
2、类中的成员变量一般情况下我们不让对象。直接调用。通过其他方式调用。
    体现: 方法就是一种封装, 关键字private也是一种封装。

在类中我们通过private修饰成员变量,提供public修饰的getter/setter方法

private 是一种修饰符,最小的   可以修饰成员变量和成员方法  被private修饰的成员变量和成员方法,只能在本类中使用。
格式:       
1、private 数据类型 变量名;
2、提供公共的getXxx和setXxx方法 可以访问成员变量

this :this代表所在类的当前对象的引用(地址值),即对象自己的引用
        *方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

格式:
this.成员变量名;
this.成员方法();

构造方法:
概念:当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
格式:
        public 方法名(参数列表){ //方法名要和类名相同
                        方法体
                }
注意:       
1. 如果你不提供构造方法,系统会给出无参数构造方法。
2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数

       

       












欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2