Java基础——类、对象和方法

类、对象和方法是什么?

类的定义和创建

类是对具体物体的抽象,由 访问修饰符+关键字class+类名+{} 组成,其中

  1. 类名由字母开头,每个首字母大写,随后跟数字和字符,不可使用关键字
  2. 每个.java文件的文件名必须和公共类类名相同
  3. 类中存在成员变量(域)和成员方法,成员变量会自动初始化为默认值
public class Person {
   private String name;
}

方法的定义和创建

方法是对类的操作过程,分为

  1. 如返回值数据类型不为void,在方法内部需通过return返回处理结果
  2. 方法名第一个首字母小写,其余大写,随后跟数字和字符,不可使用关键字
  3. this指向的是当前对象的引用(隐藏),用于区分成员变量和局部变量重名问题 ,静态方法不带this指针,静态方法只能操作静态变量
  4. 每个类都会默认带有一个公用无参构造方法,方法名同类名
  5. 为保证封装性,类中变量都为私有,暴露公有方法供外部调用
class Person {
    private String name;
    private static int uid;

    Person() {
        
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static int getUid() {
        return uid;
    }

    public static void setUid(int uid) {
        Person.uid = uid;
    }
}

对象的定义和创建

对象是类的具体化,由类构造对象的过程称为创建类的实例。

  • 通过new关键字创建实例:new 构造方法(),也称匿名对象,仅可使用一次
  • 把对象存放在变量可以多次使用,类名 变量名=new 构造方法()
Person tom=new Person();

方法的调用

  • 对于构造方法:new 构造方法名
  • 对于静态方法:类名.静态方法名
  • 不是静态方法:变量名.方法名

可变参数

可让方法接收不定数量的参数类型,如下在传入的参数中选择最大值返回

public int selectMax(int... value) {
    int largest = Integer.MIN_VALUE;
    for (int v : value) {
        if (v > largest) {
            largest = v;
        }
    }
    return largest;
}

方法参数调用类型

  • 按值调用:方法接收的是调用者提供的值
  • 按引用调用:方法接收的是调用者提供的变量地址

Java中总是采用按值调用,即方法得到的是参数值的拷贝,不能对其进行修改

传递基本数据类型

对于基本数据类型,拷贝的是值,值不能修改

private void change(int i) {
    i = i * 3;
}

i=30,但a还是10,故打印出来的值为10

int a = 10;
change(1);
System.out.println(a);

传递引用数据类型

对于引用数据类型,拷贝的是地址,地址不能修改

class Person {
    private String name;

    Person(String name) {
        this.name = name;
    }
}

private void change(Person person) {
    person = new Person("john");
}

如下,person指向name="john"的Person,但tom依旧指向name="tom"的Person,不能修改tom的指向

Person tom = new Person("tom");
change(tom);
System.out.println(tom.name);

但地址指向的数据可以修改

class Person {
    private String name;

    Person(String name) {
        this.name = name;
    }
}

private void change(Person person) {
    person.name="john";
}

如下,tom依旧指向name="tom"的Person,但其name改为了“john”

Person tom = new Person("tom");
change(tom);
System.out.println(tom.name);

方法重载

重载是同名方法拥有顺序不同、类型不同的参数,编译器根据调用者传递的参数匹配出相应的方法,通过this可以实现在构造方法中调用构造方法,实现类构造的统一入口

class Person {
    Person(){
        this("name");
    }
    Person(String name){

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值