Java学习第三十三天<main语法><代码块><设计模式>

FineBI制作数据可视化大屏-数据连接(1) 快速上手大屏可视化,FineBI数据连接配置。 阅读详情

main语法

package chapter10.D1类变量和类方法;
​
public class Main01 {
    private static String name="征途";
    private int n1=1000;
    private void cry(){
        System.out.println("main02方法");
    }
    public static void hi(){
        System.out.println("main01方法");
    }
    public static void main(String[] args) {
        //静态方法可访问本类静态成员
        System.out.println(name);
        hi();
        //静态方法不能调用本类非静态成员,只能创建对象
        new Main01().n1=10;
        new Main01().cry();
        System.out.println(new Main01().n1);
​
    }
}

package chapter10.D1类变量和类方法;
//传参数按 Main02>edit configuration>program auguements
public class Main02 {
    public static void main(String[] args) {
        for (int i = 0; i < args.length ; i++) {
            System.out.println("args["+i+"]="+args[i]);
        }
    }
}

代码块

package chapter10.D2代码块;
​
public class CodeBlock {
    public static void main(String[] args) {
        Movie xx = new Movie("你好");
        Movie yy = new Movie("阴天", 200);
    }
​
}
class Movie{
    private String name;
    private double price;
    private String director;
​
    //3个构造器构成重载,可以把相同语句放入代码块,如此不管调用哪个构造器(创建对象)都会调用代码块内容
    //代码块优先于构造器调用
    //以下是普通代码块,每创建一个对象就执行
    {
        System.out.println("方法");
        System.out.println("应用");
    }
    public Movie(String name) {
        System.out.println("(String name)代码被调用");
        this.name = name;
    }
​
    public Movie(String name, double price) {
        System.out.println("(String name, double price)构造器被调用");
        this.name = name;
        this.price = price;
    }
​
    public Movie(String name, double price, String director) {
        this.name = name;
        this.price = price;
        this.director = director;
    }
}

package chapter10.D2代码块;
​
import chapter07.D5多态.Detail.Animal;
​
//静态代码块随类的加载而执行,只执行一次
public class CodeBlockDetail {
    public static void main(String[] args) {
        //类被加载情况举例
        AA aa = new AA();//创建对象实例时会被调用
        BB bb = new BB();//创建子类对象,父类会优先被加载
        System.out.println(Cat.n1);//使用类静态成员时被调用,但会优先调用父类
        System.out.println(Cat.n2);//只执行父类
        //普通代码块只在创建对象时执行,创一次调用一次
​
​
    }
}
//静态代码块
class AA{
    static {
        System.out.println("AA的静态代码块1被执行....");
    }
}
class BB extends AA{
    static {
        System.out.println("BB 的静态代码块1被执行");
    }
}
class Animal2{
    public static int n1=99;
    public static int n2=9;
    static {
        System.out.println("Animal2类的代码块被执行");
    }
}
class Cat extends Animal2 {
    public static int n1=999;//静态属性
    static {
        System.out.println("Cat的静态代码块被执行");
    }
    {
        System.out.println("普通代码块执行");
    }
}

package chapter10.D2代码块;
​
public class CodeBlockDetail02 {
    public static void main(String[] args) {
        A a = new A();//1.getN1() 2.n1 3.静态代码块  顺序可反 4.普通代码块 5.getN2 6.n2 7构造器
    }
}
class A{
    public A() {
        System.out.println("构造器执行");
    }
​
    //静态代码块和静态属性初始化优先级一样,按顺序执行
    private static  int n1=getN1();//静态属性初始化
​
    {
        System.out.println("A 普通代码块01");
    }
    private int n2=getN2();
    static {//静态代码块
        System.out.println("A 静态代码块01");
    }
​
    public int getN2(){
        System.out.println("getN2被调用");
        return 50;
        }
        public static int getN1(){
        System.out.println("getN1被调用...");
        return 100;
    }
​
}

package chapter10.D2代码块;
​
public class CodeBlockDetail03 {
    public static void main(String[] args) {
        BBB bbb = new BBB();
​
    }
}
class AAA{
    public AAA(){
        System.out.println("AAA构造器被调用");
    }
}
class BBB extends AAA{
    {
        System.out.println("BBB普通代码块");
    }
    public BBB(){
        //super
        //普通代码块
        System.out.println("BBB构造器被调用");
    }
}

package chapter10.D2代码块;
//父静态(代码块、属性),子静,父普(代码块、属性),父构,子普,子构
public class CodeBlockDetail04 {
    public static void main(String[] args) {
        B02 b02 = new B02();//1类的加载 2创建对象
        new C02();
    }
}
class A02{
    private static int n1=getVal01();
    static {
        System.out.println("A02静态代码块");//2
    }
    {
        System.out.println("A02普通代码块");//5
    }
    public int n3=getVal02();
    public static int getVal01(){
        System.out.println("getVal01");//1
        return 10;
    }
    public int getVal02(){
        System.out.println("getVal02");///6
        return 10;
    }
​
    public A02() {//类加载完,创建对象,执行隐藏语句,转到5
        //super
        //普通代码块,属性
        System.out.println("A02无参构造器");//7
    }
}
class B02 extends A02{
    private static int n3=getVal03();
    static {
        System.out.println("B02静态代码块");//4
    }
    public int n5=getVal04();
    {
        System.out.println("B02普通代码块");//9
    }
    public static int getVal03(){
        System.out.println("getVal03");//3
        return 10;
    }
    public  int getVal04(){
        System.out.println("getVal04");//8
        return 10;
    }
​
    public B02() {//跳转super
        System.out.println("B02无参构造器执行");//10
    }
}
//静态代码块只能调用静态成员(属性,方法),普通代码块可以调用任意成员
class C02{
    private int n1=100;
    private static int n2=200;
    private void m1(){
​
    }
    private static void m2(){
​
    }
    static {
        System.out.println(n2);//静态代码块只能调用静态成员
        m2();
    }
    {
        System.out.println(n1);//普通代码块可以调用所有
        System.out.println(n2);
        m1();
        m2();
    }
}

设计模式

单例模式懒汉式

package chapter10.D3设计模式.单例模式懒汉式;
//懒汉式单例模式,只有当用户使用getInstance时候才返回对象,再次调用时仍然返回上次对象,保证对象单例
public class single02 {
    public static void main(String[] args) {
        System.out.println(Cat.n1);//加载类同时加载静态成员,但对象没创建
        Cat instance = Cat.getInstance();//这时候才创建
        System.out.println(instance);
        Cat instance1 = Cat.getInstance();//不会再创建新的
        System.out.println(instance1);
​
    }
}
​
//程序运行中只能创一个Cat对象,单例模式
class Cat{
    private String name;
    public static int n1=999;
​
    private Cat(String name) {
        System.out.println("构造器被调用");
        this.name = name;
    }
    private static Cat cat;//定义一个static 静态属性对象,不创建对象
    public static Cat getInstance(){//有线程安全问题
        if (cat==null){//若没创建对象
            cat=new Cat("小可爱");
        }
        return cat;
    }
​
    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                '}';
    }
}

单例模式饿汉式

package chapter10.D3设计模式.单例模式饿汉式;
​
public class Single {
    public static void main(String[] args) {
        //GirFriend xh = new GirFriend("小红");避免多个对象
        GirFriend gf = GirFriend.getGf();//拿到对象,再拿一次也是同一个对象
        System.out.println(gf);
​
        System.out.println(GirFriend.n1);//会加载类,加载静态成员,饿汉式可能创建了对象,但没使用
​
    }
}
class GirFriend{
    private String name;
    public static int n1=100;
​
     //保证只能创建一个GirFriend对象 1.构造器私有化(防止类外部创建) 2.内部类中创建对象(static) 3.提供公共static方法,返回gf对象
    private  GirFriend(String name) {
​
        this.name = name;
    }
    private  static GirFriend gf =new GirFriend("小红");//若不加static,则无法在静态方法中使用,方法不静态,则又要创建对象调用
    public static GirFriend getGf(){
        return gf;
    }
​
    @Override
    public String toString() {
        return "GirFriend{" +
                "name='" + name + '\'' +
                '}';
    }
}

基于Llama 3搭建中文版(Llama3-Chinese-Chat)大模型对话聊天机器人 前面两篇博文,我们在笔记本部署了Llama 3 8B大模型,使用Ollama搭建了基于Web 可视化对话机器人。在使用过程中,大模型经常出现中文问题英文回答的问题。本博文就用Llama3-Chinese-Chat微调模型来解决这个问题…… 阅读详情

相关推荐

STM32 HardFault调试:寄存器分析与堆栈回溯实战

HardFault是Cortex-M内核中最关键的不可屏蔽异常,本质是处理器对非法指令执行、内存访问越界、堆栈溢出等底层硬件错误的强制响应。其原理根植于ARMv7-M异常模型,通过自动压栈保存xPSR/PC/LR等核心寄存器实现上下文捕获。技术价值在于为嵌入式系统提供确定性故障归因能力,支撑高可靠工业设备开发。典型应用场景涵盖FreeRTOS任务崩溃定位、DMA中断越界诊断及MPU保护机制验证。本文聚焦STM32平台,深入解析LR寄存器低4位判别堆栈模式、基于MSP/PSP的PC地址提取方法,并结合Keil

weixin_30951515的博客 143

java的main函数为什么是public static void main(String[] args)

这个问题困扰我好久了,今天就一查究竟,毕竟我好奇心比较重 1. why “public” 因为java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public 2.why “static” 在java中,没有static的变量或函数,如果想被调用的话,是要先新建一个对象才可以。而main函数作为程序的入口,需要在...

weixin_34248705的博客 355

Android音频学习(八)——AudioFlinger线程

在 PlaybackThread 的实现中,Flag 用于标识线程的特殊行为或配置。

miemie2014的博客 1399

java 理解main方法&&代码块

※非静态方法不能被静态方法调用,可以使用对象来调用 ※方法名 参数1 参数2 参数3(如果想要hello world为一个参数,则使用"hello world"的形式) 一、代码块为{}括起来的代码的集合         1.普通代码块:直接定义在方法中的代码块。代码块中的变量属于局部变量。         2.构造块:将代码块直接定义在类中为构造块。         ※构造块优先于构造

firedinner的专栏 476

PVE启动卡在loading initial ramdisk

pve显卡直通导致的异常解决

学而时习之 6690

硬件-汽车电子-TBOX/TCAM核心器件选型与系统集成设计指南

本文深入解析汽车电子TBOX/TCAM硬件架构与系统集成设计,涵盖核心器件选型、电源管理、信号完整性优化等关键点。重点分享5G模组选型避坑经验、MCU隐性指标及热设计验证方案,为车载通信系统开发提供实用指南。

weixin_30352645的博客 531

怎样编程产生 a1,a2,a3,a4变量

http://stackoverflow.com/questions/33140196/how-to-declare-multiple-variable-names-with-loop-in-c-sharp accepted Well, if I am interpreting your question right, you can declare

u014683488的专栏 5486

Python与ArcGIS系列(二)获取地图文档

在ArcPy中,要引用当前的地图文档(Map Document),可以使用 mapping 模块中的 MapDocument 类。值得注意的是,在arcgis内部python窗口运行该代码才能访问已加载进arcgis的文档,如果通过其他idle则无法访问。要引用磁盘上的地图文档并对其进行一些设置,同样可以使用ArcPy中的 mapping 模块和 MapDocument 类。对于我们平常的工作,接触最多的就是图层数据处理,获取图层后就可以方便地进行下一步处理。

weixin_43894929的博客 2200

Java 中main函数的参数

1、运行Java程序的同时,可以通过输入参数给main函数中的接收参数数组args[],供程序内部使用。即当你在Java命令行后面带上参数,Java虚拟机就直接把它们存放到了main方法中的参数String数组里了。      这是在运行生成的class文件的时候传入的参数 2、args是Java命令行参数,因为参数可以为多个,所以要用数组来存我们在DOS中执行Java程序的时候使用“ja

cherrybomb1111的博客 2万+

多源异构数据在线可视化ETL编排平台深度实践:基于Python与Apache Calcite的现代数据管道构建

在当今企业数据环境中,数据源呈现爆发式增长与高度异构性。传统ETL工具面对多源(MySQL、PostgreSQL、MongoDB、Hive、文件系统等)与异构(结构化、半结构化、非结构化)数据时,往往面临扩展性差、学习曲线陡峭、难以融入现代DevOps体系等问题。本文深入探讨了如何构建一个基于Python/Pandas、Apache Calcite(通过JPype桥接)以及Vue.js前端的轻量级、在线可视化ETL编排平台。

2201_76125261的博客 78

Orin+ GMSL (Ser 9295+Des 9296)流程分析(1)

orin gmsl

乐于分享 2658

main方法和代码块

2,调用普通代码块和普通属性的初始化(注意:普通代码块和普通属性初始化调用的优先级一样,如果有多个普通代码块和多个普通变量初始化,则按他们定义的顺序调用)1,调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用)普通代码块,在创建对象实例时,会被隐式的调用。static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着。如果是普通代码块,每创建一个对象,就执行。**类什么时候被加载(重要背!

Islucas的博客 643

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

main函数、代码块、final

main函数接受的是一个String数组类型的参数,该参数在执行java +【要运行的程序】 + 参数。(6)创建子类时的继承关系:静态代码块、静态属性初始化、普通代码块、普通属性初始化、构造方法的调用顺序。(1)普通的代码块,在创建对象实例时,会被隐式的调用。每被创建一次,就会调用一次。(5)构造函数前面隐含了super()和普通代码块(先super后普通代码块)final可修饰类、属性、方法、局部变量(大部分意为不可修改)(2)static代码块也叫静态代码块,作用是。而执行,并且只执行一次。

m0_63762870的博客 1280

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

main方法、代码块(面试题)、单例模式

代码块又称为初始化块,属于类中的成员【类中的一部分】,类似于方法,讲逻辑语句封装在方法体中,通过{}包围起来。它是在类加载时,或者创建对象时隐式调用。【这里我们补充一下创建对象时候隐式调用的还有super】。

m0_75176740的博客 1603

Java基础:main,代码块,单例,枚举,注解

java基础:main方法,代码块,单例设计模式,枚举,注解

m0_51416683的博客 229

【Java】—— Java面向对象高级:单例设计模式与理解main方法的语法

设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式免去我们自己再思考和摸索。就像是经典的棋谱,不同的棋局,我们用不同的棋谱。"套路"经典的设计模式共有23种。每个设计模式均是特定环境下特定问题的处理方法。简单工厂模式并不是23中经典模式的一种,是其中工厂方法模式的简化版。

weixin_63106307的博客 1521

static,单例设计模式,main方法,代码块

static,单例设计模式,main方法,代码块

m0_74012211的博客 668

main 方法与代码块

目录 一 、主方法 main 二 、代码块 1、普通代码块:直接在方法或者语句中定义的代码块 2、构造块:直接写在类中的代码块 3 、静态代码块:使用 static 关键字声明的代码块 一 、主方法 main public class Demo01 { public static void main(String[] args) { }...

Rachel_pan的博客 1011

Java大总结之——静态方法和静态变量+代码块+抽象类+接口+单例设计模式+模版设计模式

Java大总结之——静态方法和静态变量+代码块+抽象类+接口+单例设计模式+模版设计模式

prince0520的博客 1713

Java高级-类变量和类方法、main方法、代码块、单例设计模式等

Java高级之类变量和类方法、main方法、代码块、单例设计模式简单总结!

404 Not Found 401

Java main方法与代码块

main方法 main方法是Java虚拟机调用的。也就是说必须要是public。 在main方法中,可以直接调用main方法所在类的静态方法或静态属性,,但是不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象访问类中的非静态成员。 在IDEA下,如何给main方法args字符串数组传参数 /** * @auther */ public class Hello { public static void main(String[] args) { for

芋泥啵啵月亮的博客 553

java静态代码块和main函数的加载顺序

package com.it.demo; public class StaticDemo { static { System.out.println("x"); } public static void main(String[] args) { System.out.println("执行了main方法....."); } } 运行结果: x 执行了main方...

u014048538的博客 1493

【零基础学Java】第十三天 类变量,类方法,main方法以及代码块详解

🔥本文主要讲的是类变量,类方法,main方法的细节讨论以及代码块的一些内容。📄个人简介 🔔作者简介:大家好,我是小学生!!🙈大二学生一枚,目前正在自学Java,如果大家觉得我写的还不错的话,希望大家给我点赞👍+收藏⭐+评论📢,有什么写的不对的地方还请大家多多指教🙏,共同进步。 📝个人主页:小学生!! 📖系列专栏 🌕阶段一:Java基础编程 💦目前已原创13篇 🌕阶段二:数据结构与算法 🌕阶段三:操作系统 🌕阶段四:计算机网络...

m0_54024106的博客 728

【Java】静态代码块,构造代码块,构造方法,main方法执行顺序

直接上代码,简洁明了! 例1 public class Main { static {//静态方法块 System.out.println("静态代码块"); } {//构造方法块 System.out.println("构造方法块"); } public Main(){//构造方法 System.out.println("构造方法"); } publi...

黄骏捷的博客 2294

【第二阶段:java基础】第9章:面向对象编程高级-1(P333-P393)static、main、代码块、单例设计模式

本系列博客是韩顺平老师java基础课的课程笔记

vector的博客 949

java面向对象编程--static/main/代码块/单例设计模式/final/抽象类/接口/内部类

调用。

qq_48973099的博客 893
上一篇: Java学习第三十二天<房屋出租项目><类变量和类方法>
下一篇: Java学习第三十四天<Final><抽象类><接口入门><接口与继承对比><接口数组><接口多态>
syd2820
博客等级 码龄6年 0粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值