Loading

面向对象-匿名对象-private关键字等


返回 我的技术栈(Technology Stack)



面向对象的三大特征(了解)


  • 封装(encapsulation)
  • 继承(inheritance)
  • 多态(polymorphism)

成员变量和局部变量的区别


Class Person {
String name ; //成员变量(name) 在堆内存(属于对象,对象进堆内存) 创建时存在,随对象的消失而消失 有默认初始值
public void speak(int x) { //局部变量(x,num) 在栈内存(属于方法,方法进栈内存) 调用时存在,随方法的调用结束而消失 没有默认初始值,必须定义,赋值后才能使用
int num = 10;
}
}

基本数据类型与引用数据类型


  • 基本数据类型变量:byte,short,int,long,float,double,boolean,char
  • 引用数据类型变量:数组,类,接口,枚举

匿名对象


  • 匿名对象:没有名字的对象

  • 应用场景:仅仅调用一次方法的时候(注意:多次调用的时候不合适)

  • 好处:可以节省代码。当作实际参数传递

  • 匿名对象是否可以调用属性并赋值?有什么意义?——————————可以调用属性,但是没有意义,因为调用后就变成了垃圾。所以如需要赋值还是用有名字的对象。

    class Demo {
    public static void main(String[] args{
    Car c1 = new Car(); // 创建有名字的对象
    c1.run();
    c1.run();

    new Car().run(); // 匿名对象调用方法
    }
    }

    class Car {
    String color;
    int num;

    public void run() {
    System.out.println("车运行");
    }
    }

    /***************************************************************************/
    class Demo1 {
    public static void main(String[] args) {
    Car c1 = new Car(); //有名字的对象的调用
    method(c1);

    method(new Car()); //匿名对象可以当作参数传递
    }
    //抽取方法提高代码的复用性
    public static void method(Car cc) {
    cc.color = "red";
    cc.num = 8;
    cc.run();
    }
    }

    class Car {
    String color;
    int num;

    public void run() {
    System.out.println(color + "-----" + num);
    }
    }

private关键字的概述及特点


  • private关键字特点
    • 是一个权限修饰符

    • 可以修饰成员变量和成员方法

    • 被修饰的成员只能在本类中被访问

      class Demo {
      public static void main(String[] args) {
      Person p1 = new Person();
      p1.setName ="张三";
      p1.setAge(-17);
      System.out.println(p1.getName() + "---------" + p1.getAge());
      }
      }

      class Person {
      private String name;
      private int age;

      public void setName(String name) { //设置姓名
      this.name = name;
      }

      public String getName() { //获取姓名
      return name;
      }

      public void setAge(int age) { //设置年龄
      if (age > 0 && age < 200) {
      this.age = age;
      }else {
      System.out.println("输入错误!");
      }
      }

      public int getAge() { //获取年龄
      return age;
      }
      }

posted @ 2021-03-27 23:13  言非  阅读(82)  评论(0)    收藏  举报