Java 类和对象

目录

一、类和对象

二、类的使用

2.1 类的创建

2.2 类的实例化(创建对象)

三、this引用

四、构造方法

4.1 不带参数的构造方法

4.2 带参数的构造犯法

4.3 this调用构造函数

一、类和对象

类的定义:类是用来对一些实体进行描述的,比如创建一个类:人,这个类中就包含“人”的各种属性,例如:名字,年龄,性别,跑,跳等等。

当我们创建完一个类之后,我们就可以创建对象(实例化),相当于给一个东西赋予这个类里的所有属性,相当于创建了一个东西,我觉得这个有点像《我的世界》,有创造那味儿了。

二、类的使用

2.1 类的创建

我们一般用class定义一个类,一个文件当中可以定义多个类,但是一个文件中只能有一个public类,并且这个类要与文件名一致。(类名注意用大驼峰定义,每个类都会创建一个字节码文件)

单个类:

public class People {
   private String name;
   private int age;
   private String gender;
   public static void run(){
      System.out.println("跑!");
   }
   public static void smile(){
      System.out.println("哈哈哈哈哈!");
   }
}

多个类:

public class People {
   private String name;
   private int age;
   private String gender;
   public static void run(){
      System.out.println("跑!");
   }
   public static void smile(){
      System.out.println("哈哈哈哈哈!");
   }
}
class Dog{
   private String name;
   private String color;
   private int age;
   public static void bark{
      System.out.println("汪!");
   }
}

2.2 类的实例化(创建对象)

当我们创建好一个类之后,我们就可以实例化对象了(创建对象)

public static void main(String[] args) {
      People people1=new People();
   }

注意:

1. 成员变量不赋值会有默认值,基本类型:0,引用类型:null,布尔类型:false

2. 通过一个类可以实例化多个对象

三、this引用

在类中,我们常常使用this引用来引用当前对象,主要是为了防止成员变量和局部变量重名的情况导致歧义的发生。this只能在成员方法中使用。

class Dog{
   private String name;
   private String color;
   private int age;
   public static void bark{
      System.out.println("汪!");
   }
   public void getAge(int age){
      this.age=age;
   }
}

四、构造方法

构造方法是一个特殊的成员方法,名字与类相同,没有返回值,一般情况下用public修饰,在创建对象的时候,由编译器自动调用,并且在整个对象的生命周期之内只调用一次。

4.1 不带参数的构造方法

class ShoppingCart{
    private String userName;
    private CartItem[] items=new CartItem[5];
    private int count=0;
    private double totalPrice=0;
    public ShoppingCart(){
        System.out.println("不带参数的构造函数");
    }
}

当我们没写构造方法的时候,编译器会默认提供不带参数的构造方法

4.2 带参数的构造犯法

class ShoppingCart{
    private String userName;
    private CartItem[] items=new CartItem[5];
    private int count=0;
    private double totalPrice=0;
    public ShoppingCart(String userName){
        this.userName=userName;
    }
}

注意:

1.当自己写了构造方法之后,编译器就不会再提供不带参数的构造方法了

2.可以写多个构造函数,构造函数可以重载,编译器会自动调用合适的构造方法

4.3 this调用构造函数

构造方法中,可以通过this调用其它构造方法来简化代码

class Dog{
   private String name;
   private String color;
   private int age;
   public Dog(int age){
      this.age=age;
   }
   public Dog(){
      this(2);
   }
}

1.this()必须是构造方法中的第一条语句

2.不能形成调用环

3.在静态方法中无法传递this引用

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值