JAVA基础(七)——面向对象中的类和对象

1、类中属性的使用

属性(成员变量) VS 局部变量

相同点
  • 定义变量的格式一样:数据类型 变量名 = 变量值
  • 先声明,后定义
  • 变量都有其相对应的作用域
不同点

1.1 在类中声明的位置不同

  • 属性:直接定义在{ }中
  • 局部变量:声明在方法内、方法形参内、代码块内、构造器形参、构造器内部的变量

1.2 关于权限修饰符的不同

  • 属性:可以在声明属性时,指明其权限,使用权限修饰符。常用修饰符:private、public、缺省、protected,默认为缺省
  • 局部变量:不可以使用权限修饰符

1.3 默认初始化值

属性:类的属性,根据其类型,都有默认初始化值

  • 整型(byte、short、int、long):0
  • 浮点型(float、double):0.0
  • 布尔型(boolean):false
  • 引用数据类型(字符串、类、数组、接口):null

局部变量:没有初始化值

  • 意味着,在调用局部变量之前,一定要显示赋值
class User{
    
    
    // 属性或成员变量
    String name;
    int age;
    boolean isMale = true;

    public void eat(){
    
    
        // 局部变量
        String food = "汉堡";
        System.out.println("我最喜欢吃的是"+food);
    }

    public void talk(String language){
    
      // 形参
        System.out.println("我使用的语言是"+language);

    }
}

2、类中方法声明和使用

2.1 方法声明

权限修饰符 返回值类型 方法名(形参列表){
方法体
}
在这里插入图片描述

class User{
    
    
    // 属性或成员变量
    String name;
    int age;
    boolean isMale = true;

    public void eat(){
    
    
        // 局部变量
        String food = "汉堡";
        System.out.println("我最喜欢吃的是"+food);
    }

    public void talk(String language){
    
      // 形参
        System.out.println("我使用的语言是"+language);

    }
    
    public String getName(){
    
    
        return this.name;
    }
    
    public int changeAge(int age){
    
    
        this.age = age;
        return this.age;
    }
}

说明
1、权限修饰符

  • private、public、缺省、protected

2、返回值类型:有返回值 VS 无返回值

  • 如果方法有返回值,则必须在声明方法时指定返回值类型
  • 如果方法没有返回值,则使用viod来表示

2.2 形参列表:可以声明0个、1个或多个形参

3、对象数组的内存解析

  • 引用类型的变量,只可能存储两种值:null或地址值
    在这里插入图片描述

4、匿名对象

  • 理解:我们创建的对象,没有显示的赋值给一个变量名,即为匿名对象
  • 特征:匿名对象只能调用一次
public class HelloWorld {
    
    
    public static void main(String[] args) {
    
    
       Teacher t1 = new Teacher();
         // 匿名对象的使用
       t1.sayStudent(new Student());
    }
}

class Teacher{
    
    
    public void sayStudent(Student student){
    
    
        student.sayName();
    }
}
class Student {
    
    
    String name;
    int age;

    public void sayName(){
    
    
        System.out.println(name);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42164004/article/details/114092521