萌新卷妹带你从头复习JavaSE-类与对象-1

举报
京与旧铺 发表于 2022/10/31 17:22:47 2022/10/31
【摘要】 萌新卷妹带你从头复习JavaSE-类与对象-1✨欢迎关注🖱点赞🎀收藏⭐留言✒🔮本文由京与旧铺原创,csdn首发!😘系列专栏:java学习💻首发时间:🎞2022年10月16日🎠🎨你做三四月的事,八九月就会有答案,一起加油吧🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲💬推荐一款模拟面试...

萌新卷妹带你从头复习JavaSE-类与对象-1

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创,csdn首发!

😘系列专栏:java学习

💻首发时间:🎞2022年10月16日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

💬推荐一款模拟面试、刷题神器👉[点击进入网站

🔮1.初见类与对象

类( class) 是构造对象的模板或蓝图。我们可以将类想象成制作小甜饼的切割机,将对 象想象为小甜饼。由类构造(construct) 对象的过程称为创建类的实例 (instance ). 1 对类进行实例化,这个实例化的类就是对象。

C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。面向过程注重的是过程,在整个过程中所涉及的行为,就是功能。面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。面向过程: 1.把冰箱打开 2. 把大象放入 3. 冰箱关起来 面向对象: 打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中。

类与对象的概念非常地抽象,下面通过介绍类与对象的应用来理解类与对象。

🔮2.类与类的实例化

🎃2.1类的创建

🎁自定义一个类的格式:

class ClassName {
    //成员:1.变量(字段/属性) 2.方法
}

(1)类名采用大驼峰形式命名 (2)一个.java文件中只能有一个public修饰的类 (3)类中的成员可以是变量(字段/属性),方法,静态变量与静态方法。

比如:

class Student {
    public String name;
    public String sex;
    public int age;
    public String id;
        
    public void setName(String str){
        name = str;
    }
}               

🎃2.2类的实例化

我们所定义出来的类,可以将其理解为一张建筑图纸(蓝图),按照这张图纸的内容建造处一栋房子的过程称为类的实例化,这栋实例化出来的“房子”即对象 2 当然,一张设计图纸是可以实例化多个建筑的,这些建筑的属性都是相同的。换言而知,类可以实例化出多个对象。

在Java对类进行实例化的关键字为new,这个关键字我相信大家肯定不陌生,因为在之前的输入和定义数组时都使用这个关键字new

$$类名\ 变量名\ =\ new\ 类名(构造函数参数);$$

其中这个构造函数参数我们先不管他,这个参数可以没有。

比如我们定义了这样的一个类:

class Student {
    public String name;
    public String sex;
    public int age;
    public String id;
    public String major;
    
    public void getName() {
        System.out.println(name);
    }
    public void getMajor() {
        System.out.println(major);
    }
}

那么对这个类的实例化过程为:

public class ClassCreat {
    public static void main(String[] args) {
        Student stu = new Student();//实例化对象
        stu.name = "weijianhuawen";//使用.对这个实例化的对象stu进行访问
        stu.sex = "man";
        stu.major = "computer";
        stu.getMajor();//同理该对象的方法进行访问
        stu.getName();
    }
}

使用Student类定义出来的变量stu为引用变量,它的值为实例化对象的地址。 3

🔮3.类的成员

🎃3.1成员变量

在类中方法外定义的变量称为为一个类的成员变量。成员变量又称字段属性

class Variable {
    public int a
    public double pi;
    public String str;
}

像上面这样在类中方法之外定义的变量,为成员变量。如果我们需要使用这个类,则需要先用new实例化出一个对象,然后才能对里面的成员进行访问。通过对类实例化出的多个对象,每个对象是独立的,修改一个对象的值,另一个对象的值是不会改变的。最后,类中的成员变量可以自己初始化值也可以不初始化,这和方法中定义的局部变量有了区别,但是一般情况下不自己初始化值,不初始化成员变量值的情况下,会有一个默认值。 4

public class ClassCreat {
    public static void main(String[] args) {
        Variable var = new Variable();
        System.out.println(var.a);
        System.out.println(var.pi);
        System.out.println(var.str);
        var.pi = 3.14;
        var.a = 12;
        System.out.println(var.a);
        System.out.println(var.pi);
        System.out.println("---------------------");
        Variable var2 = new Variable();
        System.out.println(var2.a);
        System.out.println(var2.pi);
    }
}

5

🎃3.2方法

类中可以定义成员变量以外还可以定义方法,比如main方法就是定义在一个类里面的。

class Menthod {
    public double a;
    public double b;
​
    public double add(double x, double y) {
        return x + y;
    }
    public double sub(double x, double y) {
        return x - y;
    }
}

我们定义了一个类,里面有两个成员变量和成员方法,如果需要使用这个类,需先实例化成对象,然后才能访问对象中的变量或方法。

public class ClassCreat {
    public static void main(String[] args) {
        Menthod men = new Menthod();
        men.a = 3.14;
        men.b = 2.88;
​
        double sum = men.add(men.a, men.b);
        double sub = men.sub(men.a, men.b);
​
        System.out.printf("和为%.2f\n差为%.2f\n", sum, sub);
    }
}

6

🎃3.3静态变量与静态方法

上面我们在类中方法之外定义的成员变量和成员方法是属于对象的,存储在堆区之中。而静态的变量或者静态的方法是存储在方法区,类也是储存在方法区,所以静态的变量或者方法也称为类变量与类方法。静态变量与静态方法是属于类的,所以不需要对类进行实例化就能使用,当然,由于它是属于类的,你在一个对象中改变静态变量的值,那么在其他对象中访问这个静态变量时,该静态的值会是被修改的值。 7

class StaticMember {
    public static int x;
​
    public static int add(int a, int b) {
        return a + b;
    }
}
​

上面所定义的这个类中a是成员变量,b是静态成员变量,还有一个静态方法add。上面说过使用静态的变量或者方法是不需要使用类实例化对象的(当然你也可以实例化出一个对象,然后根据对象访问它,这个是没问题的),a必须实例化出对象才能使用。

public class ClassCreat {
    public static void main(String[] args) {
        int a = 12;
        int sum = StaticMember.add(a, StaticMember.x);
        System.out.println(sum);
        System.out.println("------------");
        StaticMember sm1 = new StaticMember();
        sm1.x = 14;
        sum = sm1.add(a, sm1.x);
        System.out.println(sum);
        System.out.println("------------");
        StaticMember sm2 = new StaticMember();
        sum = sm2.add(a, sm2.x);
        System.out.println(sum);
    }
}

8

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。