• 面向对象的三条主线:
    • Java类及类的成员:属性、方法、构造器;代码块、内部类
    • 面向对象的三大特征:封装性、继承性、多态性、(抽象性)
    • 其它关键字:this、super、static、final、abstract、interface、package、import
  • 举例代码

Java 对象里面的属性可以拿到嘛 java对象主要属性_构造器

  • 如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性(非static),意味着,如果我们修改一个对象的属性a,则不影响另外一个对象的属性a的值。

Java 对象里面的属性可以拿到嘛 java对象主要属性_初始化_02

Java 对象里面的属性可以拿到嘛 java对象主要属性_尚硅谷_03

  • 属性和局部变量的相同点和不同点:
    • 相同点
      • 定义变量的格式相同:数据类型 变量名=变量值;
      • 先声明,后使用
      • 变量都有其对应的作用域
    • 不同点
      • 在类中声明的位置不同
        • 属性:直接定义在类的一对{}内
        • 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
      • 关于权限修饰符的不同
        • 属性:可以在声明属性时,指明其权限,使用权限修饰符,private,public,缺省,protected
        • 局部变量:不可以使用权限修饰符
      • 默认初始化值的情况不同
        • 属性:根据其类型,都有默认初始化值
        • 局部变量:没有默认初始化值,在调用局部变量之前一定要显式初始化,特别地,形参在调用时赋值即可
      • 在内存中加载的位置不同
        • 属性:加载到堆空间
        • 局部变量:加载到栈空间
  • 方法的声明

Java 对象里面的属性可以拿到嘛 java对象主要属性_java_04

  • 权限修饰符:private,public,缺省,protected(见封装性)
  • 返回值类型:有返回值和无返回值
    • 如果有返回值,必须在方法声明时,指定返回值的类型,同时,方法中需要使用return关键字指明返回类型的常量或变量
    • 如果没有返回值,声明时使用void来表示,通常没有返回值的方法就不需要使用return,如果使用只能是return;
  • 方法名:属于标识符,遵循标识符的规则和规范
  • 形参列表:方法可声明0个、1个或多个形参列表
  • 方法体:方法功能的体现
  • return关键字:
    • 使用范围:使用在方法体重
    • 作用:结束方法,针对有返回值类型的方法,使用return 方法返回所需要的的数据
    • return后不可以再声明执行语句
  • 方法的使用中,可以调用当前类的属性或方法,但是方法里面不可以再定义新的方法。
  • 匿名对象:
    • 创建的对象没有显式的赋给一个变量名,匿名对象只能调用一次
  • 方法的重载
    • 在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可
  • 可变个数形参的方法
    • 格式:数据类型…变量名
    • 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个。。。
    • 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
    • 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载,系统会认为是一样的,不能共存
    • 可变个数形参在声明时必须在末尾,public void show(int I, String … strs);且最多只能声明一个可变形参
  • 方法参数的值传递机制
    • 如果变量是基本数据类型,此时赋值的是变量所保存的数据值
    • 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值
    • 方法的形参传递机制:如果是基本数据类型,传递的是实际存储的值,原始的值不会发生变化,如果是引用数据类型,传递的是地址值,原始的值会发生变化

  • 封装性的体现:需要权限修饰符来配合
    • 将类的属性私有化(private),同时提供公共的(public)方法来获取(getxxx)和设置(setxxx)属性的值
    • 不对外暴露的私有的方法
    • 4种权限修饰符:(从小到大排序)private、缺省、protected、public,可以用来修饰类的内部结构,修饰类只能用使用缺省和public

修饰符

内部类

同一个包

不同包的子类

同一个工程

private

yes

缺省

yes

yes

protected

yes

yes

yes

public

yes

yes

yes

yes

  • 构造器的使用:
    • 作用是创建对象,初始化对象的信息
    • 如果没有显式的定义类的构造器,则系统默认提供一个空参的构造器,可以定义多个构造器
    • 格式:权限修饰符  类名(形参列表){ }
    • 一个类中定义的多个构造器,彼此构成重载,一旦显式的定义了类的构造器,系统就不再提供默认的构造器了
    • 一个类中至少会有一个构造器
  • 属性赋值的先后顺序
    • 默认初始化--显式初始化--构造器中初始化--对象.方法
  • this关键字的使用:在类的方法中,我们可以使用this.属性或者this.方法的方式,调用当前对象属性或方法,但是,通常情况下选择省略this.,特殊情况下不能省,即方法的形参和类的属性重名时,要显式的使用this.属性的方式

Java 对象里面的属性可以拿到嘛 java对象主要属性_初始化_05

  • this修饰或调用构造器,在一个构造器里面调另一个构造器,使用this(形参列表),不能自己调用自己
  • 如果一个类中有n个构造器,最多有n-1个构造器使用this(形参列表)
  • this(形参列表)必须声明在当前构造器的首行,因此最多只能声明一个this(形参列表)

Java 对象里面的属性可以拿到嘛 java对象主要属性_java_06