crushS  

面向对象

面向对象的本质:以类的方式组织代码,以对象的形式封装数据
三大特性:封装、继承、多态

方法的调用

  1. 在Demo02类里调用Student类中的非静态方法

//学生类
public class Student {

   //非静态方法
   public void say(){
       System.out.println("学生说话了");
  }
}

在另一个类里调用
   public class Demo02 {
   public static void main(String[] args) {

       //调用非静态方法:实例化这个类new
       //对象类型 对象名 =对象值;
       Student student=new Student();
       student.say();

  }
  1. 非静态方法 实例化之后才存在

    public void a(){  //
       b();
    }

    public void b(){
       
    }

     

  2. 静态方法static是和整个类一起加载的

    public static void a(){ //static是和整个类一起加载的
           b();
      }

       public static void b(){

      }
  3. 在一个类中调用静态方法

    public class Demo03 {
       public static void main(String[] args) {
           Demo03.add(1,2);
      }

       public static int add(int a,int b){
           return a+b;
      }

    }
  4. 在一个类中调用非静态方法

    public class Demo03 {
       public static void main(String[] args) {
           new Demo03().add(1,2);
      }

       public int add(int a,int b){
           return a+b;
     
      }

    }

    创建与初始化对象

    使用new关键字创建对象的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用

    构造器

    特点:

    1. 必须和类的名字相同

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

public class Person {
  //一个类即使什么都不写,它也会存在一个方法
   //无参构造器
   String name;
   //实例化初始值
   //1.使用new关键字,本质是在调用构造器
   //2.用来初始化值
   public Person(){

  }
   //有参构造:一旦定义了有参构造,无参构造就必须显示定义
   public Person(String name){
       this.name=name;
  }
}

测试
/*
public static void main(String[] args) {
       Person person=new Person("nihao");
       System.out.println(person.name);
   }
   构造器:
       1.和类名相同
       2.没有返回值
   作用:
       1.new 的本质是在调用构造器
       2.初始化对象的值
   注意点:
       1.定义了有参构造后,必须显示的定义一个无参构造
*/

 

posted on 2021-02-15 22:40  crushS  阅读(23)  评论(0编辑  收藏  举报