Java学习day05笔记-类和对象_封装_构造方法

面向对象入门

1.类(class) 和 对象(object)

    //什么是类,什么是对象
    //类和对象之间的关系
    //如何创建类,如何创建对象

    类是抽象的,是对一群具有共同特征和行为的事务的统称,是用来描述对象的。

    对象是现实生活中一个具体存在,看的见摸得着.

2.类和对象之间的关系

    一个类可以创建多个对象。
    类是用来描述对象的,对象有什么特征,有什么行为,就把它定义在类里面。

3.类的抽象

    如何把日常生活中的事务抽象成程序中的类?
        类的三要素:类名 属性(特征) 方法/行为
        //人类(类)  名字(名字)  吃饭,睡觉(方法)
                        //成员变量      成员方法
    方法:一般名词都是类(名词提炼法)
        拥有相同(或者类似)属性和行为的对象都可以抽象出一个类


4.如何书写类

    格式:权限修饰符(public、private) class关键字 类的名字{
            //在类中可以写类的描述(对象)
            //属性、特征----->成员变量
            //行为、方法----->成员方法
            }
        例如:小明(对象)---人类(类)
            public class 人类
            {
                //成员变量(属性,特征)
                String name;
                int age;
                //成员方法(行为,功能方法)
                public void eat(){ // 局部变量
                }
            }

5.如何创建对象

    格式: 类名 对象名 = new 类名();
            数据类型 对象名 = new 数据类型();//new了一个对象

    类是一种数据类型。//引用数据类型

    String str = new String();//系统定义的类

    Itheima ima = new Itheima();//自己定义的类

    对象赋值:
        对象.属性名 = 值;  //直接赋值
        //这样直接赋值,就是让我们的属性直接暴露了,有可能会出现问题,
        //为了不让外界直接赋值,所有采用private隐藏属性。
┌───────//就是属性的封装。//封装就是面向对象的三大特性之一。
|
|   //有main方法的类,叫测试类
↓
6.面向对象的三大特征:封装,继承,多态
    (1)面向对的第一大特性---封装
        隐藏对象的属性和实现细节,仅对外提供一个公共的访问方式。
        //使用private关键字实现隐藏。private 数据类型 成员变量名;
        private 修饰后的内容,只能在本类中访问,外界别的类不能调用

    (2)如何提供公共的访问方式?
        可以用setter方法(赋值),getter方法(取值)
        //通过set方法给对象的属性(成员变量)赋值,间接赋值。

        setter方法一定是公共的方法;//public
        setter方法一定没有返回值;  //void
        setter方法一定有参数;      
        setter方法一定set开头,加属性名,属性名开头要大写;
        setter方法参数名一定和属性名相同;
        setter方法一定要用形参给属性赋值。

        set方法格式:
        public void setShuXingMing(数据类型 属性名(在这里是局部变量名)){
            this.属性名 = 属性名;
        }

        getter方法一定是公共的方法;//public
        getter方法一定有返回值; 
        getter方法的方法名一定是get+属性名;
        getter方法一定没有参数;
        getter方法一定返回属性的值。

        get方法格式:
        public 数据类型 getShuXingMing(){
            return this.属性名;//this可以不写,因为没有相同的局部变量。
        }

        //文档注释,可以在调用方法的时候显示这个方法的作用

    (3)如何区别相同的局部变量和成员变量?  //如果变量名相同一般取就近原则,也就是局部变量。
            使用 this 关键字,语法:this.成员变量 
                this 代表当前对象,谁代表这个方法就代表谁



    (4)快捷键自动生成所有setter,getter方法://alt+shift+s   

    (5)构造方法的作用:
            创建对象,并同时给对象的属性初始化。//第一次赋值
                类名 对象名 = new 类名();//通过构造方法,创建一个对象

    (6)构造方法的特点:
                如果类中没有构造方法,系统就会自动生成一个空参构造方法
                如果类中定义了构造方法,就不会自动生成空参构造方法

    (7)构造方法的分类:     
            空参构造方法
                public 类名(){  //无参数
                    //没有返回值,连void都没有
                }

            有参构造方法
                public 类名(数据类型1 属性名1,数据类型2 属性名2...){ //参数列表 
                    //this.属性名 = 属性名;
                }

猜你喜欢

转载自blog.csdn.net/clf3211147/article/details/80044112