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

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

4 人参与  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://m.zhangshiyu.com/post/49935.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

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

最新文章

  • 家宴过后,我捉奸了庶妹和我老公后续+番外_庶妹老公侍卫读者推荐_小说后续在线阅读_无删减免费完结_
  • 首富老公为三姐妹点天灯挥金如土,我换嫁贺总轰动全国强推_胥淮岁岁过敏最新阅读_小说后续在线阅读_无删减免费完结_
  • 未婚夫和同事孕期领证,我转身嫁入豪门推荐_沈泽光安南拿泽光小编推荐_小说后续在线阅读_无删减免费完结_
  • 重回奥运种子选手陷害我的这天番茄热门_林子李梦冷笑在线看_小说后续在线阅读_无删减免费完结_
  • 知微向海完结全文_陆知衍纪瑶奶奶最新阅读_小说后续在线阅读_无删减免费完结_
  • 被污蔑送错外卖后,我杀疯了阅读_小徐胡闹阅读_小说后续在线阅读_无删减免费完结_
  • 我坐上评委席后,把我踢出乐队的男友悔疯了快手热门_乔枝姐阿媛程戬常读_小说后续在线阅读_无删减免费完结_
  • 当风吹落了雨TOP10_老公陈角鹰薇薇大反击_小说后续在线阅读_无删减免费完结_
  • 未婚夫逼我放弃继承权后,全家悔疯了一口气完结_沈雨雨柔养老校园甜文_小说后续在线阅读_无删减免费完结_
  • 手撕无耻老婆一家宝藏文_小姨子钟琳老公人气小说_小说后续在线阅读_无删减免费完结_
  • 愿得一人心常读_萧城蒋雪柔华冉优质全文_小说后续在线阅读_无删减免费完结_
  • 女士的玩具推文_杜小灵白月光杜雪必读文_小说后续在线阅读_无删减免费完结_

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

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