Java面向对象基础3——构造方法及this关键字

简介: Java面向对象基础3——构造方法及this关键字

前言


面向对象编程中,学会构造方法能使得代码更加简洁,本文将具体介绍有关构造方法及其相关的知识点


this关键字


定义


this关键字的用处是调用成员变量中的值,而不是通过就近原则调用方法里的值


作用


区别成员变量和局部变量


代码实现


用IDEA来实现一下


7cc4819b8b2647cdab922b4e1453993e.png


具体代码如下


package test5;
public class Person1 {
    private int age;
    public void method(){
        int age = 18;
        System.out.println(this.age);
        System.out.println(age);
    }
}
package test5;
import test3.Person;
public class Person1Test {
    public static void main(String[] args) {
        Person1 p = new Person1();
        p.method();
    }
}


可以看出 this.age 调用的是成员变量中的值,由于没有赋值,所以是默认值0.


构造方法


格式


public class 类名{
  修饰符 类名(参数){
    方法体;
  }
}


构造方法也分为:空参构造和带参构造


特点


1.方法名与类名完全相同,大小写要一致

2.无返回值(return),也不需要void

3.一般用 public 声明变量

4.每个类至少有一个构造方法

5.构造方法可以重载


注意事项


1.如果没有定义构造方法,系统会给一个默认的无参数构造方法

2.如果定义了构造方法,系统不会提供默认构造方法

3.带参构造和空参构造是构造方法的重载

4.最好将带参构造和空参构造全部写上,防止出bug


代码实现


package test5;
public class Student {
    //定义成员变量
    private String name;
    private String gender;
    private int age;
    //空参构造
    public Student(){
    }
    //带参构造
    public Student(String name, String gender, int age){
        this.name = name;
        this.gender = gender;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
package test5;
public class StudentTest {
    public static void main(String[] args) {
        Student s = new Student("张三","男",18);
        System.out.println(s.getName());
        System.out.println(s.getGender());
        System.out.println(s.getAge());
    }
}

1ac316570d454a778609b59c53edda0c.png


结语


构造方法是很重要的知识点,在下一篇中会介绍剩余的知识点

相关文章
|
24天前
|
缓存 安全 Java
Volatile关键字与Java原子性的迷宫之旅
通过合理使用 `volatile`和原子操作,可以在提升程序性能的同时,确保程序的正确性和线程安全性。希望本文能帮助您更好地理解和应用这些并发编程中的关键概念。
40 21
|
11天前
|
Java
java构造方法,构造代码块,静态代码块的执行顺序
本文介绍了Java中构造方法、构造代码块和静态代码块的执行顺序。静态代码块用`static`声明,在JVM加载类时执行一次;构造代码块在每次创建对象时执行,先于构造方法;构造方法用于对象初始化,创建对象时调用。示例代码展示了这三者的输出顺序,并解释了它们的区别和应用场景。
|
14天前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
|
1月前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
58 13
|
2月前
|
Java 编译器 开发者
Java中的this关键字详解:深入理解与应用
本文深入解析了Java中`this`关键字的多种用法
217 9
|
3月前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
2月前
|
JSON Java 数据挖掘
利用 Java 代码获取淘宝关键字 API 接口
在数字化商业时代,精准把握市场动态与消费者需求是企业成功的关键。淘宝作为中国最大的电商平台之一,其海量数据中蕴含丰富的商业洞察。本文介绍如何通过Java代码高效、合规地获取淘宝关键字API接口数据,帮助商家优化产品布局、制定营销策略。主要内容包括: 1. **淘宝关键字API的价值**:洞察用户需求、优化产品标题与详情、制定营销策略。 2. **获取API接口的步骤**:注册账号、申请权限、搭建Java开发环境、编写调用代码、解析响应数据。 3. **注意事项**:遵守法律法规与平台规则,处理API调用限制。 通过这些步骤,商家可以在激烈的市场竞争中脱颖而出。
|
3月前
|
缓存 安全 Java
Java volatile关键字:你真的懂了吗?
`volatile` 是 Java 中的轻量级同步机制,主要用于保证多线程环境下共享变量的可见性和防止指令重排。它确保一个线程对 `volatile` 变量的修改能立即被其他线程看到,但不能保证原子性。典型应用场景包括状态标记、双重检查锁定和安全发布对象等。`volatile` 适用于布尔型、字节型等简单类型及引用类型,不适用于 `long` 和 `double` 类型。与 `synchronized` 不同,`volatile` 不提供互斥性,因此在需要互斥的场景下不能替代 `synchronized`。
2437 3
|
3月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
45 1
|
4月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
42 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)