带着好奇学Java------对象的创建

26 篇文章 0 订阅
24 篇文章 0 订阅
本文深入探讨了Java编程中访问修饰符、static和final的关键概念。访问修饰符用于控制类、变量和方法的访问权限,确保代码的封装性。static修饰的成员为类共有,无需对象即可访问。final则用于定义不可变的类、方法和变量,提供安全性。同时,解析了构造函数和构造代码块在对象初始化中的不同作用,以及静态代码块的执行时机。了解这些基础知识对于编写健壮的Java程序至关重要。
摘要由CSDN通过智能技术生成

批判性思维的本质在于学会提问,且学会提问是更有效的学习方法,养成提问的习惯,时刻保持好奇心,以理性的心态分析世界。

对象的创建【资料获取】

问:如何开始第一个程序?

//访问修饰符 + class + 类名 = 类
public class HelloWorld {
    
    //访问修饰符 + 变量类型 + 变量名 = 变量
    private String name;
    
    //访问修饰符 + static + 变量类型 + 变量名 = 静态变量
    public static String value = "1";

    //访问修饰符 + static final + 变量类型 + 变量名 = 静态常量
    public static final int NUM = 18;
    
    //访问修饰符 + final + 变量类型 + 变量名 = 常量
    public final int NUM = 18;

    //访问修饰符 + 类名() =  无参构造
    public HelloWorld() {
       
    }
    
    //访问修饰符 + 类名() + 参数 = 含参构造
    public HelloWorld(String name) {
        this.name = name;
    }

    //访问修饰符 + 返回参数类型 + 方法名 = 方法
    public String getName() {
        return name;
    }

    //方法
    public void setName(String name) {
        this.name = name;
    }
    
    //静态方法
    public static String sayHello(){
        System.out.println("Hello");
    }
    
    static{
        name = "静态代码构造块"
    }
    
    {
        System.out.println("代码构造块");
    }

    //静态方法
    public static void main(String[] args) {
        //创建对象
        HelloWorld helloWorld = new HelloWorld();
        helloWorld.setName("HelloWorld");
        System.out.println(helloWorld.getName());
        System.out.println(HelloWorld.NUM);
        System.out.println(HelloWorld.value);
    }
}
  • 使用class声明了一个HelloWorld类
  • 定义了name,value变量,NUM常量
  • 定义了无参构造,含参构造
  • 定义了针对name变量的取值,设值得方法.
  • 定义了main方法作为程序执行入口

问: 频繁出现的访问修饰符用处是什么?
访问修饰符主要是用来控制访问权限,隐藏内部实现细节,避免因为直接访问或修改造成程序崩溃的问题.
在这里插入图片描述

问: static关键字有什么用处?

  • static修饰的成员变量和成员方法独立于该类的任何对象,被类的所有实例共享。

  • 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们,无需创建对象

问: fianl关键字有什么用处?

  • 被final修饰的类不可以被继承

  • 被final修饰的方法不可以被重写

  • 被final修饰的变量不可以被改变,实际上是指引用不可变,引用指向的内容是可以改变的.

问: 类中的构造函数与构造代码块有啥区别?【资料获取】

  • 构造函数

1.对象一建立,就会调用与之相应的构造函数,也就是说,不建立对象,构造函数时不会运行的。
2.构造函数的作用是用于给对象进行初始化。
3.一个对象建立,构造函数只运行一次,而一般方法可以被该对象调用多次。

  • 构造代码块

1.构造代码块的作用是给对象进行初始化。
2.对象一建立就运行构造代码块了,而且优先于构造函数执行。这里要强调一下,有对象建立,才会运行构造代码块, 类不能调用构造代码块的,而且构造代码块与构造函数的执行顺序是前者先于后者执行。
3.构造代码块与构造函数的区别是:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的 对象初始化, 因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构
造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。

静态代码块

1.它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静 态代码块,然后才执行主函数的。
2.静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的。
3.静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
4.一个类中可以有多个静态代码块

执行顺序

1.执行父类的静态代码块,并初始化父类静态成员变量
2.执行子类的静态代码块,并初始化子类静态成员变量
3.执行父类的构造代码块,执行父类的构造函数,并初始化父类普通成员变量
4.执行子类的构造代码块, 执行子类的构造函数,并初始化子类普通成员变量

最后来自小编的福利

小编整理了一份大厂真题的面试资料,以及2021最新Java核心技术整理的资料集锦,需要领取的小伙伴可以 私聊关注我 免费领取 ,编程的世界永远向所有热爱编程的人开放,这是一个自由,平等,共享的世界,我始终是这样坚信的。

喜欢小编的分享可以点赞关注哦,小编持续为你分享最新文章 和 福利领取哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值