Java 面向对象编程OOP(1)

前言:

经过了这么多天的等待我们马上就要迎来中国的传统节日——七夕,屏幕前的你是不是还是独自一个人在刻苦的学习Java呢。哈哈,不要难过,不要哭泣,Java是一个面向对象的编程语言,我们终于可以给自己new一个对象出来了!是不是顿时感觉有了干劲呢,那还不抓紧时间学起来,等以后别人问你的时候,你就直接说我有很多对象。随即掏出自己的idea,一顿操作。
好好学习吧,未来的你一定前途无量。

初识面向对象

在这里插入图片描述
在这里插入图片描述

方法回顾和加深

在这里插入图片描述

import java.io.IOException;

//Demo01 类
public class Demo01 {
    //main方法
    public static void main(String[] args) {

    }
    /*
    修饰符  返回值类型   方法名(...){
      方法体
      return 返回值;
      }
     */
    //return 结束方法
    public String sayHello(){
        return "hello,world";
    }
    public void print(){
        return ;
    }
    public int max(int a,int b){
        return a>b?a:b;//三元运算符!
    }
    //数组下标越界:Arrayindexoutofbounds
    public void readFile(String file)throws IOException{

    }
}

静态方法的调用

在这里插入图片描述

非静态方法的调用

在这里插入图片描述
在这里插入图片描述

参数传递

在这里插入图片描述

值传递

public class Demo04 {
    public static void main(String[] args) {
        int a=1;
        System.out.println(a);
        Demo04.change(a);
        System.out.println(a);
    }
    //返回值为空
    public static void change(int a){
        a=10;
    }
}


1
1

引用传递

public class Demo05 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name);
        Demo05.change(person);
        System.out.println(person.name);

    }

    public static void change(Person person) {
    //perso是一个对象,指向-> Person person = new Person();这是一个具体的人,可以改变属性!
        person.name = "czf";
    }
}
    //定义了一个person类,有一个属性:name
   class Person{
        String name;//null
    }


null
czf

类与对象的关系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

构造器

构造器:

  1. 和类名相同
  2. 没有返回值
    作用:
    1.new本身在调用构造方法
    2.初始化对象的值
    注意点:
    1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
    在这里插入图片描述

对象的创建分析

在这里插入图片描述
如图我们构建了Pet类,在类中定义了 name(String类型),age(int类型),并且定义了一个无参构造方法shout。随后,创建dog对象,并且向name,age中传递参数,最后通过dog对象调用这些方法。

旺财
3

最后得到结果,那么这一套流程下来,它的内存产生了怎样的变化呢?
在这里插入图片描述
这张图就详细的解释了为什么我们起了不同的对象名称,都是new的同一个类,调用的方法缺完全不同。因为你每次new的一个新的Pet类,就会在堆中出现一个引用变量名,然后会在栈中开辟出一个新的空间,每一个引用变量名会指向它相对应的堆中的内存。

类与对象小结

  1. 类与对象
    类是一个模板:抽象,对象是一个具体的实例
  2. 方法
    定义、调用!
  3. 对应的引用
    引用类型: 基本类型(8)
    对象是通过引用来操作的:栈—>堆
  4. 属性:字段Filed 成员bian’l
    默认初始化:
    数字:0 0.0
    char:u0000
    boolean:false
    引用:null
    修饰符 属性类型 属性名=属性值!
  5. 对象的创建与使用:
    必须使用new关键字创造对象,构造器 Person p=new Person();
    对象的属性 p.name
    对象的方法 p.sleep();
  6. 类:
    静态的属性 属性
    动态的行为 方法

特别感谢:

附上视频地址
狂神yyds
https://www.bilibili.com/video/BV12J41137hu?p=30

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值