Day11

Day 11

面向对象(OOP)

面向对象 编程的 本质就是:以类的方式组织代码,以对象的组织(封装)数据 抽象| 三大特性:

  1. 封装

  2. 继承

  3. 多态

从认识轮角度考虑是先有对象后有类。对象,具体的事物,类,是抽象的,是对对象的抽象 从代码运行角度考虑是先有类后有对象。类是对象的模板

方法的加深和回顾

方法的定义

修饰符

返回类型

break和return的区别:break跳出循环,return结束方法,返回一个结果 方法名:驼峰原则,见名知意

参数列表

参数类型,参数名,(。。。)

异常抛出

疑问,后面详解

定义一个方法
  修饰符 返回值类型 方法名(。。。){ }
  //方法体
  return;
  1.需要一个public
  2.需要一个返回值的类型
  3.方法名
  4.方法的参数

 

方法的调用

静态方法

加了static,通过类名.方法名可以直接调用

非静态方法

不加static,调用之前需要实例化(即运用new关键字 )

package com.OOP;

public class Demo02 {


   public static void main(String[] args) {

       //静态方法:加了 static,然后通过   类名.方法名 就可以直接调用
       Demo01.max(2,3);1
           


       //动态方法:没有加static
       int max = new Demo01().max(2, 4);//new Demo01().max(2,3);


  }

}

 

形参和实参

值传递

java都是值传递:如下; 由于java都是 值传递 ,所以在调用下方之后输出的仍然是1

package com.OOP;

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;
       
  }


   public static  void  change(int a){
       a=10;

  }




}

 

引用传递

package com.OOP;

//引用传递:对象,本质还是值传递
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是一个对象,指向的是 》》》Person person= new Person();这是一个具体的人们可以改变属性
       person.name="dadashisb";
  }

}

//一个类里面只能有一个 public class,但是可以有多个class
//再次定义了一个 Person类,有一个属性:name
//
class Person{
   String name; //null
}

注意值传递与引用传递的区别

为什么上面值传递输出的1,而不是10 下面输出的是dadashisb,而不是null

this关键字:

类和对象的关系

类是一种抽象的数据类型,他是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物 eg: 生活中是动物,植物,手机,电脑等 代码中是:Person类,Pet类,Car类等等,这些类都是用来描述/定义某一类具体的事物应该具备 的特点和行为

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

创建类 ,创建方法,调用方法

public static void Person(int a;intb){
//此为静态方法,可直接 类名.方法名 调用;若没有static,则需要 实例化 即利用 new 关键字
}

 

创建和初始化对象

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

类的构造器

也称构造方法,是在创建对象时必须要调用的,并且构造器有一下两个特点: 1.必须和类名字相同 2.必须没有返回值,也不能写 void

类与对象的创建

package com.OOP.Demo02;

//学生 类
public class Student {

   //一个 类里 只有属性和方法
  //属性
   String  name;//null
   int age;     // 0


   //方法
   public void study(){
       System.out.println(this.name+"在学习");

  }


}
package com.OOP.Demo02;
public class Application {
//一个项目 应该只存在 一个 main方法
   public static void main(String[] args) {

       //类是抽象的,需要实例化,我们需要在此(main方法)进行实例化
       //类实例化之后,会返回一个自己的对象
       // student对象就是一个Student类的具体实例

       Student student = new Student();
       Student xiaoming = new Student();
       Student xiaohong = new Student();

       xiaoming.name="小明";
       xiaoming.age=3;

       System.out.println(xiaoming.name);
       System.out.println(xiaoming.age);

       xiaohong.name="小红";
       xiaohong.age=3;

       System.out.println(xiaohong.name);
       System.out.println(xiaohong.age);





  }
}


构造器详解

构造器 1.必须和类名字相同 2.必须没有返回值,也不能写 void

alt+insert会生成构造器

构造器走完才会生成对象

构造器 作用:

  1. 使用 new关键字,必须要有 构造器(本质是调用 构造器)

  2. 用来初始化值

构造器总结

构造器存在特点: 和类名相同 没有返回值

作用: new:本质是在调用构造器 定义一个有参构造之后,如果想继续使用无参构造,就必须显示的定义一个无参构造(即手打出来);

alt+insert会生成构造器

 

posted @ 2020-08-29 21:49  冯柚子  阅读(170)  评论(0)    收藏  举报