Java 类和对象 今年的第一篇文章

在这里插入图片描述

这一篇文章是2020年1月1日发布,祝大家元旦快乐!也正式步入Java基础开发学习阶段!跟着我的文章顺序、回顾我走过的Java里程,脚踏实地,带你学习!

今年的目标是粉丝突破8W

类和对象

Java是面向对象的程序设计语言,类在面向对象中起着重要的作用,类可以用来定义变量,这种类型的变量统称为引用变量,所有的类都是引用类型


定义类

面向对象程序设计有两个重要的概念:类(class)和对象(Object)
类是某一批对象的抽象,可以理解为某种概念。对象是一个具有存在的实体。


定义类的语法

修饰符 class 类名 {
    ......
}

修饰符:
修饰可以是public、final、abstract,或者不要修饰符,但这仅仅只能满足语法上的要求。

类可以包含三个主要的成员:构造器、成员变量和方法

类中成员定义的顺序没有任何影响,成员之间可以相互调用,但是static修饰的成员不能访问没有static修饰的成员

构造器:
构造器是类的根本,没有构造器,那么这个类通常没有办法创建实例,如果没有写构造器,Java会为这个类提供一个默认构造器。若已经编写了构造器,Java就不会为这个类提供构造器。


定义成员变量的语法

修饰符 成员变量类型 成员变量名 =;

修饰符 成员变量类型 成员变量名;

修饰符
成员变量的修饰符可以是:public、protected、private、static、final、abstract,其中public、protected 和 private 三个只能出现其一。可以与static、final 组合起来一起修饰成员变量。

成员变量类型
成员变量类型可以是Java中任何数据类型,包括基本类型和引用类型!

成员变量名
成员变量的只要符合命名规范即可,但不建议瞎命名哈,别到最后你自己都看不懂。可以用大驼峰、小驼峰或者有意义的符合规范的词来命名。

默认值
定义成员变量可以指定一个默认值。也可以不指定!例如int不指定默认值用静static修饰,默认值是0,布尔类型不指定默认值,用static修饰默认值是false。


定义方法(语法)

修饰符 方法返回值类型 方法名(形参, 形参, ...{
	...//方法体
}

修饰符
修饰符可以是:public、protected、private、static、final、abstract,其中public、protected 和 private 三个只能出现其一,abstract 和 final 两个只能出现其一。他们都可以结合 static 使用。

方法返回值类型
可以是Java允许的任何类型,包括基本类型和引用类型!如果声明了返回值类型,那么必须有着有效的return语句,才能够进行返回!若没有返回值,则使用 void 声明!

方法名
只要符合Java的命名规范即可,还是那样,不要瞎命名,可以用大驼峰、小驼峰或者有意义的符合规范的词来命名。这样会拥有更好地可读性和可维护性!

形参
用于指定该方法可以接收的值,可以没有,可以有多个,其写法是:参数类型 形参名
多个参数之间应该以英文状态下的 , 隔开,参数类型 和 形参名 之间用英文空格隔开
谁调用这个方法,谁就要负责给形参传值(必须,除非重载,后期会讲)!


构造器(语法)

构造器是一个特殊的方法,语法如下:

修饰符 构造器名(形参, 形参, ...{
	...
}

修饰符
修饰符这一部分可以省略,也可以是public、protected 和 private 三个其中一个

构造器名
构造器名必须和类的名字相同

形参
和定义方法的使用一样。但是,构造器是没有返回值的,也不能用 void 声明。但是也可以加上 void ,不会报错,加上之后Java编译器会把它当成方法来处理,而不是构造器!


定义类的完整例子

/**
 * 定义类
 */
public class TestData {

    //定义成员变量
    private String name;
    private String sex;
    private int age;

    /**
     * 这是构造器
     */
    public TestData(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    /**
     * 这是有返回值方法
     */
    public String getName() {
        return name;
    }

    /**
     * 这是无返回值方法
     */
    public void printfSex() {
        System.out.println("sex:" + sex);
    }

    /**
     * 这是有返回值方法
     */
    public int getAge() {
        age += 1;
        return age;
    }

}

this关键字引用
看定义类的构造器的时候,出现了this关键字,它的作用是总算是指向调用该方法的对象。根据this出现的位置不同,this作为对象对的默认引用有两种情况!

  • 构造器中引用该构造器正在初始化的对象!
  • 在方法中引用调用该方法的对象!

对象的定义和使用

创建对象的根本途径就是构造器,在上方代码中写入构造器,3个形参,那么实例化就要传入对应的参数,如果没有构造器,那就可以不传!通过new关键字来调用某个类的构造器即可创建实例!


对象的定义

在上面 TestData 类中,定义好了各种方法,接下来看看定义对象

public class Main {

    public static void main(String[] args) {

        //定义对象
        TestData testData = new TestData("第三女神", "男", 26);//括号中传入参数,有即可传,对应构造器
    }
}

其实就是实例化定义好的类,这就定义了一个对象!
实例化完成之后存在两个东西,一个是TestData对象、一个是testData变量


对象的使用

TestData 类中,有 getName 方法 、 printfSex 方法 getAge 方法!
通过 . 分隔符来进行调用即可!

public class Main {

    public static void main(String[] args) {

        //定义对象
        TestData testData = new TestData("第三女神", "女", 26);

        //获取年龄
        int age = testData.getAge();
        System.out.println(age);

        //获取名字
        String name = testData.getName();
        System.out.println(name);

        //输出性别
        testData.printfSex();
    }
}

运行效果如下:
在这里插入图片描述
因为走getAge方法里面有把年龄+1的逻辑运算,所以输出也会年龄+1!

如果类中方法使用了static进行修饰,那么可以直接通过类名直接引用他的static修饰的方法!现在来对 TestData 类稍作修改!

/**
 * 定义类
 */
public class TestData {

    static void getFunction() {
        System.out.println("直接通过类名调用了!");
    }
}


现在来调用getFunction这个方法:

public class Main {

    public static void main(String[] args) {

        //引用TestData类中static修饰的方法
        TestData.getFunction();
    }
}

这样就不用实例化这个对象了,但是不推荐这样做,包括我在日常开发的时候,会有很少这样的引用,因为很可能会造成内存泄漏(现在不懂没关系,以后就懂了)!

Java都是有main方法作为入口的


其它

欢迎关注!带你一步一步学Java,在BiliBili有着相关的的视频讲解!
https://space.bilibili.com/475557311

下一篇:Java 方法详解 https://myhub.blog.csdn.net/article/details/103932362

发布了99 篇原创文章 · 获赞 1020 · 访问量 76万+

猜你喜欢

转载自blog.csdn.net/qq_40881680/article/details/103794466
今日推荐