Day13

Day13

面对过程和面对对象

什么是面向对象

回顾方法及加深

javapackage oop;
​
//Demo01 类
public class Demo01 {
    //main 方法
    public static void main(String[] args) {
​
    }
    /*
    * 修饰符   返回值类型   方法名(...){
    *       //方法体
    *       retur 返回值;
    * }
    * */
    //return 结束方法,返回一个结果
    public String sayHello(){
        return "hello world";
    }
    public int max(int a,int b){
        return a>b ? a : b;//三元运算符
    }
}
package oop;
​
public class Demo02 {
    //静态方法 static
    public static void main(String[] args) {
        //实例化这个类 new
        //对象类型  对象名 = 对象值
        Student student = new Student();
        student.say();
​
    }
//    和类一起加载的
//    public static void a(){
//        b();报错
//    }
//    类实例化之后才存在的
//    public void b(){
//
//    }
}
package oop;
​
import com.sun.scenario.effect.impl.sw.java.JSWBlend_SRC_OUTPeer;
​
public class Demo03 {
    public static void main(String[] args) {
        //实参和形参的类型要对应
        int add = Demo03.add(1,2);
        System.out.println(add);
    }
​
    public static int add(int a,int b){
        return a+b;
    }
​
}
package oop;
​
//值传递
public class Demo04 {
    public static void main(String[] args) {
        int a = 1;
        System.out.println(a);//1
​
        Demo04.change(a);
        System.out.println(a);//1
    }
    //返回值为空
    public static void change(int a){
        a = 10;
    }
​
}
package oop;
​
//引用传递:对象,本质还是值传递
public class Demo05 {
    public static void main(String[] args) {
        Person person = new Person();
​
        System.out.println(person.name);//null
​
        Demo05.change(person);
​
        System.out.println(person.name);//dhc
    }
    public static void change(Person person){
        //person是一个对象:指向的--->Person person = new Person();这是一个具体的人,可以改变属性
        person.name = "dhc";
    }
​
}
//定义了一个person类,有一个属性:name
class Person{
    String name;//null
}

类与对象的关系

创建与初始化对象

package oop.demo02;
​
//学生类
public class Student {
​
    //属性:字段
    String name;//null
    int age;//0
​
    //方法
    public void study(){
        System.out.println(this.name+"在学习");
    }
​
}
package oop.demo02;
​
//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {
​
        //类:抽象的,实例化
        //类实例化后会返回一个自己的对象
        //student对象就是一个student类的具体实例
        Student xiaoming = new Student();
        Student xiaohong = new Student();
​
        xiaoming.name = "小明";
        xiaoming.age = 18;
​
        System.out.println(xiaoming.name);
        System.out.println(xiaoming.age);
    }
}

构造器

package oop.demo02;
​
public class Person {
     //一个类即使什么都不写,它也会存在一个方法
    //显示的定义构造器
​
    String name;
​
    //实例化初始值
    //1.使用new关键字,本质是在调用构造器
    //2.初始化值
    public Person (){
        this.name = "dhc";
    }
​
    //有参构造:一旦定义了有参构造,无参构造必须显示定义
    public Person(String name){
        this.name = name;
    }
    //快捷键 alt+insert 构造参数
}
//构造器:1.和类名相同
//      2.没有返回值
package oop.demo02;

//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {

        //new 实例化一个对象
        Person person = new Person();

        System.out.println(person.name);


//            类:抽象的,实例化
//            类实例化后会返回一个自己的对象
//            student对象就是一个student类的具体实例
//            Student xiaoming = new Student();
//            Student xiaohong = new Student();
//
//            xiaoming.name = "小明";
//            xiaoming.age = 18;
//
//            System.out.println(xiaoming.name);
//            System.out.println(xiaoming.age);
    }
}

创建对象内存分析

package oop;

import oop.demo03.Pet;

public class Application {
    public static void main(String[] args) {

        Pet dog = new Pet();
        dog.name = "zyj";
        dog.age = 18;
        dog.shout();

        System.out.println(dog.name);
        System.out.println(dog.age);
    }
}
package oop.demo03;
​
public class Pet {
    public String name;
    public int age;
​
    //无参构造
​
    public void shout(){
        System.out.println("叫了一声");
    }
}

类与对象小结

1.类与对象

类是一个模板:抽象,对象是一个具体的实例

2.方法

定义,调用

3.对应的引用

引用类型:基本类型(8种)

对象是通过引用来操作的:栈--->堆

4.属性:字段Filed 成员变量

默认初始化:

数字:0 0.0

boolean:false

char:u0000

引用:null

定义:修饰符 属性类型 属性名 = 属性值

5.对象的创建和使用

必须使用new 关键字创造对象,构造器 Person dhc = new Person()

对象的属性 dhc.name

对象的方法 dhc.study()

6.类:

静态的属性 属性

动态的行为 方法

上一篇:element-ui表格导出(多个表格导出多个sheet)


下一篇:DAY13 减肥计划案例和随机数