Day08-面向对象编程,Java构造器

面向对象编程

Java核心思想:oop(Object-Oriented Programming)

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

三大特性:

  • 封装
  • 继承
  • 多态

面向过程

  1. 步骤清晰简单,第一步该做什么,第二步该做什么
  2. 处理一些简单的问题

面向对象

  1. 分类的思维模式,将问题分类

  2. 适合处理复杂的问题

  3. 先有类再有对象,类是对象的模板,对象是类的实例化

方法调用回顾

  1. 静态方法
  2. 非静态方法
public class Main{			//包含主方法的类
    public static void main(String[] args){
        Student.test();		//输出1,静态方法可以直接调用
        Student.test1();	//报错,非静态方法得实例化后才能调用
        Student a = new Student();
        a.test1();			//输出2
    }
}		
public class Student{		//定义了一个学生类
    public static void test(){	//定义了一个静态方法
        System.out.println("1");
    }
    public void test1(){
        System.out.println("2");
    }
}

静态方法只能调用静态方法

public class Main{
    public static void main(String[] args){
    }
    public void a(){
        b();
    }
    public void b(){
        c();
    }
    public static void c(){
        d();	//错误,static定义的方法会随着类一起加载,而非静态方法得实例化后才会加载,调用未加载的方法,错误
    }
    public void d(){
        e();
    }
    public vodi e(){}
}
Java的值传递和引用传递
  1. 值传递
public class Main{
    public static void main(String[] args){
        int a = 1;
        test(a);	//输出值为1,方法中并未返回值
    }
    public static void test(int a){
        a=10;
    }
}
  1. 引用传递(本质还是值传递)
public class Main{
    public static void main(String[] args){
        Student a = new Student();
        System.out.println(a.name);//输出为null
        change(a);				   //这一步将对象a传递给方法change
        System.out.println(a.name);//输出为陈陈陈
    }
    public static void change(Student a){
        a.name="陈陈陈"			 //修改传递进来的对象a中的name属性
    }
}
public class Student{			  //定义了一个学生类,有一个name属性
    String name;
}

类与对象的关系

类是一种抽象数据类型,是对一类事物的整体描述或者定义,但不代表某一个具体事物

如:手机,宠物

对象

对象是抽象概念的具体实例

如:小米手机,旺财等

public class Main{
    public static void main(String[] args){
        Student student = new Student();
        student.name="陈陈陈";
        student.study();
    }
}
public class Student{
    String name;
    int age;
  	public void study(){
        System.out.println(this.name+"正在好好学习");
    }
}

构造器

与类名相同的方法,没有返回值

alt + insert	快捷创建构造器
作用
  1. 给属性赋初始值,使用new创建对象本质上是在调用构造器

  2. 无参构造与有参构造

public class Main{
    public static void main(String[] args){
        Student student = new Student();
        System.out.println(student.name);//如果没有赋值,应当输出null,现在输出了陈陈陈
        Teache teacher =new Teacher('陈琛琛'); //有参构造器必须输入对应的值,不然报错
    }
}
public class Student{
    String name;
    public Student(){
        this.name = "陈陈陈";
    }
}
public class Teacher{
    String name;
    public Teacher(String name){
        this.name=name;
    }
}
posted @ 2021-02-09 22:37  2月2日  阅读(60)  评论(0)    收藏  举报