java(抓哇)写个标准类需要哪些知识(学的话学 持续更新中 一起冲)
java(抓哇)学习类有关知识
        🌷 🌜 🌜 🌜 迈热博客间 🌛 🌛 🌛 🌷
 
 📜个人简介
🎅 作者简介:大家好,我是迈热✌️
 🌝 支持一下:点赞👍+收藏🌟+留言📪
 📣 系列专栏:java基础🍁
 ✉️格言:先把键盘敲烂再说💻往死里敲!🌞

-  
前言目录
- 成员变量和局部变量
 - 类的封装
 - 构造方法
 - 构造方法的注意事项
 - 标准类的制作
 
 -  
学习前的小唠叨🏁
 
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 🌈🌈哈喽 兄弟萌! 我们都在想成为大佬的路上加油着👍
 既然我们已经踏入了学习这一长路 那么就把它做的让自己满意为止💜 加油兄弟萌!!!!😝
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 
- 知识的介绍:
 
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 🌈🌈这一期我们介绍一下java有关的基础知识,主要介绍🍭类的封装🍭构造方法🍭构造方法的注意事项🍭标准类的制作🍭
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
🔎🔎那就开学了哦!!!
1️⃣ 成员变量和局部变量:
- 成员变量定义: 
           
- 是类内方法外的变量
 
 
既然成员变量是类内 方法外的变量的话 那么我们的类内指的是绿框内的所有内容了❗️ 而方法外指的是黄框内的内容就是我们的方法体的内容 那么很显然红框内的就是我们的成员变量咯❗️
- 局部变量的定义: 
            
- 局部变量是方法中的变量
 
 
那么下图中我们的方法体有两个分别是call()方法和sendMessage()方法 我们在这看call()方法内 去找我们的局部变量 很显然在call()方法中有个int age=30 那么这里的age 就是我们的局部变量咯哦❗️❗️
- 成员变量和局部变量内存位置: 
             
- 成员变量是在堆内存
 - 局部变量在栈内存
 - 两者区别:⬇️
 
 
| 区别 | 成员变量 | 局部变量 | 
|---|---|---|
| 类中的位置不同 | 类内方法外 | 方法内或方法声明上 | 
| 内存中位置不同 | 堆内存 | 栈内存 | 
| 生命周期不同 | 随着对象的存在而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 | 
| 初始化值不同 | 有默认的初始值 | 没有默认的初始值,必须先定义,赋值后才能使用 | 

public class Student{
    /*类是对现实生活中具有共同属性和行为的事物的抽象
    类是对象的数据类型*/
        /*属性:成员变量
          行为:成员方法
        */
    //成员变量
    public String name;
    public int age;
    //成员方法
    public void call(){
        int age=30;
        System.out.println("打电话");
    }
    public void sendMessage(){
        System.out.println("发短信");
    }
}
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 🌈🌈成员变量和局部变量的介绍结束啦🍭建议大家多敲几遍 把两者区别搞懂🍭下面开始介绍类的封装前先介绍private修饰符和this关键字🍭
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
- private修饰符 
             
- 首先我创了Student类和StudentDemo(测试类)
在Student中分别定义了姓名,年龄,性别三种变量
(姓名和年龄是被private修饰了),(性别别public修饰了).
之后在测试类中创建了Student对象 s,在之后给姓名和年龄分别赋值的时候 系统报错了,而给性别赋值的时候 系统却没报错 ,这是为什么呢???
⬇️⬇️⬇️⬇️ 
 - 首先我创了Student类和StudentDemo(测试类)
 

- ⭐️在这就体现了private修饰符的作用: 
             
- private是修饰符(是私有的意思)
 - 可以修饰成员(成员变量和成员方法)
 - 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问
 
 
⭐️⭐️⭐️那么被private修饰的成员变量需要在其他类中使用怎么办呢??
-  
不要担心 不要怕 使用变量用get/set方法
- get方法的使用: 
                 
- 定义:public 数据类型 get变量名()
 - 如:public String getName(){ }
 
 - set方法的使用: 
                 
- 定义:public void set变量名(参数){ }
 - 如:public void setName(String name){ }
 
 - 这次给姓名和年龄赋值时 我们用对象名 . setName()或setAge()
 - 如 s.setName(“小明”)或s.setAge(13);
 - 而输出时用变量名 . getName或getAge
 - 如:s.getName或s.getAge;
 
 - get方法的使用: 
                 
 
⬇️ ⬇️ ⬇️ ⬇️ 
 
 ⬆️⬆️⬆️⬆️
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 ⭐️⭐️不过大家发现了没有 我们在使用set方法的时候存在一个问题就是 把我们的局部变量赋给成员变量的那部分
 如:
public void setName(String Name){
  name=Name;
  }
  
 ⭐️我们局部变量名和成员变量名不一样??⬆️⬆️
-  
如我们局部变量名和成员变量名一样了怎么办呢😱😱😱
 -  
如:


 -  
⬆️⬆️我们局部变量名和成员变量名一样会导致 编程代码时给name一个空值 而这不是我们想要的结果!
 -  
这种情况下我们怎么解决呢❓ ❓
 -  
不要担心 不要怕 我们把这问题就交给我们的新知识点this关键字来解决叭 ❗️ ❗️ ❗️
 
-  
this关键字的使用:
- 我在name前面加了个关键字this之后 编程代码时就成功把“小明”赋给了我们的name
 - 因为前面的name被this修饰了 而后面的name没用this 所以我们就把成员变量和局部变量用this去区分开了

 
 -  
this关键字的特点:
- 1️⃣ this修饰的变量用于指代成员变量 
                     
- 方法的形参和成员变量同名时,不带this修饰符的变量指的是形参,而不是成员变量
 - 方法的形参与成员变量不是同名时,不带this修饰的变量指的是成员变量
 
 - 那么说明在成员变量和局部变量同名时我们就用this关键字来区分开咯❗️ ❗️
 - ⭐️注:this代表所在类的对象引用 
                     
- 方法被哪个对象调用,this就代表哪个对象
 
 
 - 1️⃣ this修饰的变量用于指代成员变量 
                     
 
2️⃣封装:
-  
封装的定义:
- 封装是面向对象的三大特征之一(封装,继承,多态) ,是面向对象编译语言对客观世界的模拟,客观世界里成员变量都是隐藏能够在对象内部的,外界是无法直接操作的。
 
 -  
封装的原则:
- 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问成员变量private,提供对应**getXxx()**和 **setXxx()**方法
 
 -  
封装的好处:
- 通过方法来控制成员变量的操作,提高了代码的安全性,把代码用方法进行封装,提高了代码的复用性。
 
 
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 🌈🌈封装有关知识点的介绍结束啦🍭要求大家把private修饰符和this关键字的特点和用法搞清楚咯!🍭下面开始介绍类的构造方法🍭
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
3️⃣构造方法:
- 构造方法的概述: 
                       
- 构造方法是一种特殊的方法
 - 作用是:创建对象
 - 格式如下:
 
 
public class 类名{
   修饰符 类名(参数){
   }
}
 
                     - ⭐️注:这里的修饰符我们一般用public
 
- 构造方法分两类 
                        
- 一:无参构造方法
 
 
public class 类名{
   修饰符 类名(){
   }
}
 
                      - 二:有参构造方法
 
public class 类名{
   修饰符 类名(参数){
   }
}
 
                      - 构造方法的功能: 
                         
- 主要是完成对象数据的初始化。
 
 -  构造方法的代码实现:

 - Student类:
 
public class Student {
    private String name;
    private int age;
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
    public void show(){
    System.out.println("学习java");
    }
}
 
                        - StudentDemo(测试类)
 
public class StudentDemo {
    public static void main(String[] args) {
        Student s=new Student();//无参构造的使用
        s.setName("小明");
        s.setAge(18);
        System.out.println(s.getName()+","+s.getAge());
        s.show();
        System.out.println("---------");
        s=new Student("小红",14);//有参构造的使用
        System.out.println(s.getName()+","+s.getAge());
        s.show();
    }
}
 
                        -  
⭐️ ⭐️代码解释:
- 首先我定义了Student类 在内部定义了姓名和年龄两变量(用private修饰符),在把它的无参构造和有参构造写了出来,再把成员变量用get/set方法写出来。
 - 然后就是定义测试类,在内部创建了Student对象 s,再把它分别用无参和有参方法来调用了一遍
 
 -  
⭐️ ⭐️代码编译结果:

 
4️⃣构造方法的注意事项:
-  
构造方法的创建:
- 如果没有定义构造方法,系统将给出一个默认的无参构造方法
 - 如果定义了构造方法,系统将不会再提供默认的构造方法 !
 
 -  
构造方法的重载:
- 如果自定义了带参构造方法,我们还需要无参构造方法就得手动去写一个咯哦!
 
 
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 🌈🌈构造方法和注意事项的介绍结束啦🍭要求大家把*无参和有参的特点和用法搞清楚咯!🍭下面开始介绍标准类的制作🍭
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
5️⃣标准类的制作(总结):
- 一:成员变量: 
                            
- 使用private修饰
 
 - 二:构造方法: 
                             
- 提供一个无参构造方法
 - 提供一个带多参数的构造方法
 
 - 三:成员方法: 
                              
- 提供每一个成员变量的setXxx()和getXxx()方法
 - 提供一个显示对象信息的show()方法
 
 - 四:创建对象并未其他成员变量赋值的两种方式(无参和有参哦!) 
                              
- 无参构造方法创建对象后使用setXxx()赋值
 - 使用带参构造方法直接创建带有属性值的对象
 
 
🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷🌷
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
 🍻🍻到这我们的任务就结束啦!!!🌝
 感谢大家的阅读 如果在内容方面有什么问题的话可以在评论区或私信告诉我吧
 博主小要求🙏🙏 如果这段对大家有用的话 就给博主一个免费的点赞👍+评论✉️ +收藏💻吧🌹🌹🌹 感谢大家啦!!
 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
- 点赞
 - 收藏
 - 关注作者
 
            




           
评论(0)