类和对象2

一、Java中类的作用
1.类是用来组织方法的组织单元.
例子:java.util.Arrays / java.lang.Math

Arrays.copyOf()
//类名.方法名
//通过类调方法

2.类是用来生成对象的一个模板(图纸).
例子:Scanner / Random / String

String s ="hello";
Scanner s = new Scanner(System.in);
Random r = new Random();
//上面便是构造了对象出来
r.nextInt();
//然后便是通过对象去调用方法

二、类的语法
1.如何定义类

class 类名{
  属性(field)
}
//例子
public class Teacher{
    public String name;
    public int age;
}

2.如何实例化对象

Teacher t = new Teacher();
//Teacher: 类在此处,当作数据类型来使用,是一种引用类型
//new :构造一个对象
//Teacher(): 对象的类型是Teacher这个类的对象——Teacher对象

首先构造了一个Teacher类型的对象,使用一个Teacher类型的引用t指向该对象
请添加图片描述
3.如何使用对象

t.name = "干饭王"
t.age = 20;
//赋值 / 读取
//并且 t != null

回到类的定义中
对象 = 属性+ 方法
属性:组织起来的一组数据
方法:围绕这组数据的相关方法

class 类名 {
  属性们(field)
  方法们(methods)
}

方法:

public void 讲课() {
    ...
}
//没有static,必须通过对象操作这个方法,这叫做普通方法
public static void fill() {
    ...
}
//由static,通过类名去操作这个方法,这叫作静态方法

方法分为:普通方法和静态方法
如果后面提到的方法,不加说明的话就是普通方法。

构造器

class 类名 { // 类的内部、方法的外部
   属性们(fields)
   普通方法们(methods)

   构造器/构造方法们(constructors)
   
}

//例子
Scanner sca = new Scanner(System.in);//构造对象并且传入了合适的参数
Scanner sca = new Scanner(); //构造对象
sca.in = System.in  //传参
// 构造对象和传参进行了分离

构造器:其形式和方法类似,但是和普通方法有区别
其区别为:
1.没有返回值类型
2.出现方法名的位置,必须使用类名

public class Teacher {
    public String name;
    public int age;
    public String[] courseArrays;
    // 构造器 1 没有参数
    public Teacher(){

    }
    //构造器 2 传入一个参数
    public Teacher(String name){

    }
    //构造器 3 传入两个参数
    public Teacher(String name,int age){

    }
    //构造器 4 传入三个参数
    public Teacher(String name, int age, String[] courseArrays){

    }
}

public class TeacherTest {
    public static void main(String[] args) {
        Teacher a = new Teacher();

        Teacher b = new Teacher("干饭王");

        Teacher c = new Teacher("干饭王",35);

        Teacher d = new Teacher("干饭王",35,new String[]{"JavaSE","数据结构"});

        System.out.println(d.name);//null
        System.out.println(d.age);//0
        System.out.println(d.courseArrays);//null
        //有利用传入的参数去修改对象的属性吗? 没有 对象中的属性仍然保持默认值的情况
        //因为只是将参数定义好传入了构造器,但并没有使用,所以输出还是其默认值
    }
}

关于变量的默认值规则
1.局部变量不享受默认值规则——局部变量不赋值不能使用
2.其他情况(属性、数组中的元素)——默认值是 0 的变形
0 的变形对于
数值类型:就是0
boolean:false
引用类型:null

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值