1.idea中generate生成get和set方法;
    alt insert生成类的有参和无参构造方法。
    2.面向对象的三大特征:
    1.封装:就是把一些共有的属性和方法进行抽取(抽象)之后打包-后面可以灵活使用。
    2.继承:子类继承父类;还可以拓展父类的功能。
    3.多态:一个对象多种状态。
    4.面对对象的优点:高效 ——节省代码,抽象——把共有属性和行为封装起来,后续调用。
    5.
    成员变量:声明在类中,方法外,初始化-不必要,成员变量可以直接在成员方法中使用。在堆内存中。随着对象的存在而存在,随着对象的消失而消失。
    局部变量:方法中的变量或者方法的声明上,栈内存中。随着方法的调用而存在,随着方法的运行完毕而消失。
    初始化值不同-java中规定
    成员变量:有默认的初始值
    局部变量:没有默认的初始值-必须先声明,赋值,才能使用。

    成员方法:就是方法,不能加static。
    6.创建对象
    创建对象语法: 类名 对象名 = new 类名();-后面是类的实例化
    使用“对象名.对象成员”的方式访问对象成员(包括属性和方法)
    image.png
    7.类的访问机制
    在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。
    (例外:static方法访问非static,编译不通过。)
    在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中
    定义的成员。
    8.
    image.png
    9.
    image.png
    Person p3=p1(是把p1的地址赋给p3)
    10.
    java语言特点:
    强类型语言:必须经过编译才能运行的语言
    可移植-一处编写到处运行
    面向对象
    11.编译期:将java代码保存后编译成二进制的字节码文件.class文件
    运行期:代码执行期间
    12.句柄:在java中我们在实例化完对象后,在对其进行操作时,用来去操作对象的就叫做句柄。他代表了当前对象的唯一一个标识,并不能代表当前对象的内存地址。
    13.每当创建一次对象就调用一次类的构造方法。
    14.构造函数的意义:初始化全员参数。方法名和类名完全一致,没有返回值类型,连void也没有。
    注意事项:如果不提供构造函数,系统会自动提供一个无参的构造方法,如果提供了构造函数,系统不再自动提供默认的构造函数,但是如果我们自己定义的是一个有参的构造函数会将系统中提供好的无参构造函数覆盖。
    实例化对象就是调用对象的构造函数。
    权限修饰符:private
    被private修饰的数据只能在本类中被访问!!!
    如果在其他类中访问该私有数据,可以调用get/set方法,前提是这两个方法是提供好的。
    15.this代表本类对象的引用(当前对象)
    16.nextLine获取下一行字符串(带回车)
    17.this的作用
    image.png
    18.权限修饰符
    image.png
    image.png