day09遇见狂神说学Java

本文介绍了面向对象编程的基础概念,包括类的组织方式、对象的封装、静态与非静态方法的区别,以及值传递和引用传递。重点讲解了构造器的作用及其使用,强调了无参和有参构造器的定义和注意事项。

面向对象(OOP)

本质:以类的方式组织代码,以对象的组织封装数据。

一个类只能有一个main方法,类里面只能有属性和方法

回顾之前接触的简单方法

方法分为静态方法和非静态方法,当方法中没有static时,需要实例化对象。

public class Demo01 {
    public static void main(String[] args) {
       // 如果调用类型是static可以直接用类名.方法进行调用
        //Demo02.say();
        //对象类型 对象名=对象值
        Demo02 demo02=new Demo02();
        demo02.say();
    }
}
public class Demo02 {
    //方法
    public  void say(){
        System.out.println("学生上课说话");
    }
}

static是和类一起创建的,时间片较长

一个类里面只能有一个public class,但是能有多个class

值传递

public class Demo03 {
    public static void main(String[] args) {
        int a=1;
        System.out.println(a);//a=1
        Demo03.change(a);
        System.out.println(a);//a=1 因为在这里只是将a=1的值传递给了形式参数a,但是change类并没有返回值,不会改变a的值
    }
    public static void change(int a){
        a=10;
    }
}

引用传递

public class Demo04 {
    public static void main(String[] args) {
        Person person=new Person();
        System.out.println(person.name);    //null
        Demo04.change(person);
        System.out.println(person.name);   //秦将
    }
    public static void change(Person person){
        person.name="秦将";
    }

}
class Person{
    String name;
}

面向对象深入理解

从代码运行角度,是先有类再有对象。

类是一个抽象的,比如所有人Person就是一类,而人中的小明、小红则是一个具体的对象,所以在定义时需要将类实例化

Public static void main(String[] args) {
        Person person=new Person(); //使用new关键字创建一个对象,也是类的具体实例,类实例化后会有自己的对象
    }
class Person(){
    String name;
    int age;
}
public class Demo05 {
    public static void main(String[] args) {
        Student student=new Student();
        student.age=19;
        student.name="小红";
        System.out.println(student.age);
    }
}
class Student{
    String name;
    int age;
}

构造器/构造方法

类中的构造器也成为构造方法,是进行对象创建必须用的

1.构造器的名称必须和类的名称相同

2.没有返回类型也不能写void

作用:

实例化对象的初始值

重要!!!alt+insert可以自动生成构造器

1.无参构造
public class Demo05 {
    public static void main(String[] args) {
        Student student=new Student();//使用new关键字本质是在调用构造器
        student.age=19;
        System.out.println(student.name);
    }
}
class Student{
    String name;
    int age;
    //1.无参构造 :创建对象后,默认就有
    public Student(){
        //构造器进行实例化初始值
        this.name="小红";
    }

}


2.有参构造
public class Demo05 {
    public static void main(String[] args) {
        Student student=new Student("狂神");//使用new关键字本质是在调用构造器
        //就是把Student类中所有属性都给了student这个对象
        
        student.age=19;
        System.out.println(student.name);
    }
}
class Student{
    String name;
    int age;
    public Student(){

    }
    //2.有参构造
    public Student(String name){
        //构造器进行实例化初始值,在使用时需要注意有参构造器也需要无参的定义,将无参写空
        this.name=name;//左边name是上面这个类的对象的属性,右边name是构造器中的name值传递
    }
//this.   代表当前类
}

总结

定义:1.和类名相同 2.没有返回类型,也不能写void

作用:1.初始化对象 2.new关键字的本质是调用构造器

注意:在使用有参构造器时,需要先定义无参构造器。无参构造在创建对象后默认就有

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值