当前位置:首页 » 《随便一记》 » 正文

【Java寒假打卡】Java基础-面向对象

13 人参与  2022年12月17日 15:21  分类 : 《随便一记》  评论

点击全文阅读


【Java寒假打卡】Java基础-面向对象

一、面向对象和面相过程二、类的定义三、对象的使用四、手机类的创建和使用五、单个对象的内存图六、两个引用指向同一内存图七、成员变量和局部变量八、priavte九、this关键字十、封装十一、构造方法十二、标准类

一、面向对象和面相过程

在这里插入图片描述

对象:客观存在的任何事物

类:现实生活中一类具有相同属性和行为的事物的抽象

在这里插入图片描述

二、类的定义

public class Phone{    // 成员变量    String brand;    int price;    // 成员方法    public void call(){        System.out.println("打电话");    }    public void sendMessage(){        System.out.println("发短信");    }}

三、对象的使用

创建对象
类名 对象名 = new 类名()

使用成员变量
对象名.变量名

使用成员方法
对象名.方法名()

package com.ustc.base.DataFormat;public class test18 {    public static void main(String[] args) {        // 创建对象        Phone p = new Phone();        // 使用成员变量        System.out.println(p.brand);        System.out.println(p.price);        // 成员变量赋值        p.brand = "苹果";        p.price = 111111;        System.out.println(p.brand);        System.out.println(p.price);        // 调用成员方法        p.call();        p.sendMessage();    }}

四、手机类的创建和使用

public class Phone{    // 成员变量    String brand;    int price;    // 成员方法    public void call(String name){        System.out.println("打电话"+ name);    }    public void sendMessage(){        System.out.println("发短信");    }}
package com.ustc.base.DataFormat;public class test19 {    public static void main(String[] args) {        Phone p = new Phone();        p.brand = "xxxxx";        p.price = 1111;        p.call("xhsajfrdehsiu");        p.sendMessage();    }}

五、单个对象的内存图

在这里插入图片描述

六、两个引用指向同一内存图

在这里插入图片描述

package com.ustc.base.DataFormat;public class test19 {    public static void main(String[] args) {        Phone p = new Phone();        p.brand = "xxxxx";        p.price = 1111;        Phone p1 = p; // 创建引用数据类型  p1和p指向同一块内存空间        p1.price = 9999;        System.out.println(p.price);        System.out.println(p1.price);    }}

两个引用指向同一块内存空间,改变的是同一块内容

将引用置为null ,引用将找不到内存空间,不影响其他引用

package com.ustc.base.DataFormat;public class test19 {    public static void main(String[] args) {        Phone p = new Phone();        p.brand = "xxxxx";        p.price = 1111;        Phone p1 = p; // 创建引用数据类型  p1和p指向同一块内存空间        p1.price = 9999;        System.out.println(p.price);        System.out.println(p1.price);        p = null;// 地址置为null 找不到内存        System.out.println(p.price);// 出现异常    }}

垃圾回收机制:

在这里插入图片描述

七、成员变量和局部变量

成员变量:类中方法外变量 随着对象消失而消失
局部变量:方法中变量 随着方法消失而消失

在这里插入图片描述

八、priavte

 由于类中成员变量很容易被修改,所以需要private关键字进行保护

private关键字:

是一个权限修饰符可以修饰成员 成员变量和成员方法作用是保护成员不被别的类使用 被priavte修饰的成员只在本类中进行访问

在这里插入图片描述

package com.ustc.base.DataFormat;public class Student {    private String name;    private int age;// 私有成员变量    // 提供set和get方法接口    public void setAge(int a)    {        age = a;    }    // get方法获取数据    public int getAge(){        return age;    }    // set方法  设置成员变量    public void setName(String a)    {        name = a;    }    public String getName()    {        return name;// 获取name    }    // 成员方法    public void show(){        System.out.println(name + " " + getAge());    }}
package com.ustc.base.DataFormat;public class StudentDemo {    public static void main(String[] args) {        Student s = new Student();//        System.out.println(s.name);// 报错 私有成员不可以直接获取        // 打印成员变量        System.out.println(s.getName());// 输出null        System.out.println(s.getAge());// 输出0        //设置成员变量        s.setAge(99);        s.setName("hdjashdj");        System.out.println(s.getName());        System.out.println(s.getAge());    }}

在这里插入图片描述

一个成员变量使用private关键字修饰 提供对应的get和set方法

九、this关键字

在这里插入图片描述

package com.ustc.base.DataFormat;public class Student {    private String name;    private int age;// 私有成员变量    // 提供set和get方法接口    public void setAge(int age)    {//        age = a;        this.age = age;    }    // get方法获取数据    public int getAge(){        return age;    }    // set方法  设置成员变量    public void setName(String name)    {//        name = a;        this.name = name;    }    public String getName()    {        return name;// 获取name    }    // 成员方法    public void show(){        System.out.println(name + " " + getAge());    }}

使用set函数进行赋值,this指代的是成员变量,不带this修饰的变量指的是形参

在这里插入图片描述

十、封装

在这里插入图片描述

十一、构造方法

生成对象一开始就调用有参数构造方法,如果没有指明构造方法,系统会自动调用默认构造方法

package com.ustc.base.DataFormat;public class Student {    private String name;    private int age;// 私有成员变量        // 有参数构造方法    public Student(String name,int age)    {        this.name = name;        this.age = age;        System.out.println("Student的有参数构造方法");    }    // 提供set和get方法接口    public void setAge(int age)    {//        age = a;        this.age = age;    }    // get方法获取数据    public int getAge(){        return age;    }    // set方法  设置成员变量    public void setName(String name)    {//        name = a;        this.name = name;    }    public String getName()    {        return name;// 获取name    }    // 成员方法    public void show(){        System.out.println(name + " " + getAge());    }}

构造方法的注意事项:

如果没有定义构造方法,系统会给出一个默认的无参构造方法如果定义了构造方法,系统将不再提供默认的构造方法如果自定义带参构造方法,还要使用无参构造方法,就必须再写一个无参数构造方法推荐每一个类都手写无参构造方法

十二、标准类

所有成员变量私有化私有成员变量设置get和set方法
package com.ustc.base.DataFormat;public class Student {    private String name;    private int age;// 私有成员变量    // 有参数构造方法    public Student(String name,int age)    {        this.name = name;        this.age = age;        System.out.println("Student的有参数构造方法");    }    // 提供set和get方法接口    public void setAge(int age)    {//        age = a;        this.age = age;    }    // get方法获取数据    public int getAge(){        return age;    }    // set方法  设置成员变量    public void setName(String name)    {//        name = a;        this.name = name;    }    public String getName()    {        return name;// 获取name    }    // 成员方法    public void show(){        System.out.println(name + " " + getAge());    }}

点击全文阅读


本文链接:http://zhangshiyu.com/post/49935.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 进错房,嫁给八零最牛特种兵已完结(林晚夏江肆年)抖音热文_《进错房,嫁给八零最牛特种兵已完结》最新章节免费在线阅读 -
  • 重生后选魔族,天族哭着求我当王全章节(月沁雪任意)全文免费阅读无弹窗大结局_(重生后选魔族,天族哭着求我当王全章节)重生后选魔族,天族哭着求我当王全章节免费阅读全文最新章节列表_笔趣阁(重生后选魔族,天族哭着求我当王全章节) -
  • 捡回摄政王后,她在皇室作威作福完结版小说(景飞鸢赵灵杰)全文免费阅读无弹窗大结局_(捡回摄政王后,她在皇室作威作福完结版免费阅读全文大结局)最新章节列表_笔趣阁(捡回摄政王后,她在皇室作威作福完结版) -
  • 千金难泣(立轩苏子骞翠竹吴进)全本免费在线阅读_千金难泣最新章节在线阅读(立轩苏子骞翠竹吴进)
  • 《沈云阶傅宴辞》(沈云阶傅宴辞》已完结完整版全集大结局小说)全文阅读笔趣阁
  • 《沈凌峰沈国华》已完结小说全文阅读笔趣阁《沈凌峰沈国华》
  • 《傅嫤韩恬魏郯程茂》已完结(傅嫤韩恬魏郯程茂)热门小说全目录完整版)全文阅读笔趣阁
  • 八零俏军医错嫁糙汉军官:番外+全文+后续(贺昭朗孟翩然)完本小说免费_全本免费小说八零俏军医错嫁糙汉军官:番外+全文+后续最新小说全文阅读(贺昭朗孟翩然)
  • 失去千千万万遍在线阅读(阮相宜陆凛言)全文免费阅读无弹窗大结局_(失去千千万万遍在线阅读)失去千千万万遍在线阅读免费阅读全文最新章节列表_笔趣阁(失去千千万万遍在线阅读) -
  • 脱离世界后,妻子疯了火爆小说小说(沈夕颜林程言)全文免费阅读无弹窗大结局_(脱离世界后,妻子疯了火爆小说免费阅读全文大结局)最新章节列表_笔趣阁(脱离世界后,妻子疯了火爆小说) -
  • 跨年发生踩踏,男友为救白月光丢下我(温林初宝宝)免费阅读 -
  • 都重生了,还不离婚等啥呢宋招弟霍文铮小说在线章节免费阅读

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1