首页
每日60s
项目
网盘
留言
友链
关于我
Search
1
Vue展示列表列表数据(案例一)
8 阅读
2
计算属性的getter和setter
4 阅读
3
雨天街拍
4 阅读
4
Vue.js知识量化
3 阅读
5
Go语言学习计划
3 阅读
笔记
Java
Python
Vue2
Uni-app
Go
生活
兴趣
摄影
摩托
历程
考证
工作经验
CDA人才认证
数据架构师
登录
/
注册
Search
标签搜索
go
后端
Java
编程语言
vue.js
笔记模板
CDA人才认证
数据分析师
笔记
main方法
课程笔记
编程
JiaJun
累计撰写
21
篇文章
累计收到
12
条评论
首页
栏目
笔记
Java
Python
Vue2
Uni-app
Go
生活
兴趣
摄影
摩托
历程
考证
工作经验
CDA人才认证
数据架构师
页面
每日60s
项目
网盘
留言
友链
关于我
搜索到
2
篇与
的结果
2023-10-10
Java——main方法的理解【课程笔记】
Java——main方法的理解【课程笔记】P382 深入理解main方法:解释mian方法的形式:public static void main(String[] args) {}main()方法是Java虚拟机调用的Java虚拟机需要调用main()方法,所以该方法的访问权限必须是publicJava虚拟机在执行main()方法时不必创建对象,所以该方法必须是static该该方法接受String类型的数组参数,该数组中保存执行Java命令时传递给所运行的类的参数Java执行的程序 参数1 参数2 参数3public class Main { public static void main(String[] args) { for (int i = 0;i<args.length;i++){ System.out.println("第"+(i+1)+"参数是:"+args[i]); } } }P383 理解main方法的语法在main()方法中,我们可以直接调用main方法所在类的静态方法或静态属性但是,不能直接去访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员package com.main; public class Main01 { private static String name = "ljj"; private int n1 = 1000; public static void main(String[] args) { //可以直接使用name参数 //1. 静态方法main 可以访问本类的静态成员九 System.out.println(name); //2. 静态方法main 不可以访问本类的非静态成员 System.out.println(n1); //3. 静态方法main 要访问本类的非静态成员,需要创建对象 int n11 = new Main01().n1; } }P385 代码块初始块,属于类中的成员【是类的一部分】类似于方法,讲逻辑语句封装在方法中,通过{}包围起来,但是和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显式调用,而是类加载的时,或创建对象时隐式调用基本语法:[修饰符] { 代码体 }注意:修饰符可选,但是仅仅可选static代码块分为两类,使用static修饰的叫静态代码块,没有static修饰的,较普通代码块/非静态代码块逻辑语句可以为任意逻辑语句(输出,输入,方法调用,循环,判断等);号可以写,也可以省略应用场景:下面的三个构造器都有相同的语句;不使用代码块这样代码看起来比较冗余不管那个构造器先调用,都会先执行代码块的内容结论:代码块优先于构造器package codeblock; public class CodeBlock01 { public static void main(String[] args) { new Movie("铜锁"); } } class Movie{ public Movie(String name) { this.name = name; } private String name; private int price; private String director; { System.out.println("电影开始了。。。。"); System.out.println("广告还剩N秒......"); } public Movie(String name, int price, String director) { this.name = name; this.price = price; this.director = director; } }静态代码块1)static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块,每创建一个对象,就执行2)类什么时候被加载[重要!]创建对象实例时(new)创建子类对象实例,父类也会被加载使用类的静态成员时(静态属性,静态方法)案例演示: A类extends B类 的静态块3)普通的代码块,在创建对象实例时,会被隐式的调用被创建一次,就会调用一次。如果只是使用类的静态成员时,普通代码块并不会执行package codeblock; public class CodeBlockDetail01 { public static void main(String[] args) { // AA aa = new BB(); AA.Test(); } } class AA{ static { System.out.println("AA正在加载中...."); } //在创建对象时,被调用,创建一次调用一次 { System.out.println("AA 普通代码块"); } public static void Test(){ System.out.println("静态方法调用"); } } class BB extends AA{ static { System.out.println("BB正在加载中......"); } }小结:1.static代码块是类加载时,执行,只会执行一次2.普通代码块是在创建对象时调用的,创建一次,调用一次3.类加载的3种情况,需要记住4) 创建一个对象时,在一个类 调用顺序是:(重点,难点)调用静态代码块和静态属性初始化(注意: 静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变量初始化,则按他们定义的顺序调用)调用普通代码块和普通属性的初始化(注意: 普通代码块和普通属性初始化调用的优先级一样,如果有多个普通代码块和多个普通属性初始化,则按定义顺序调用)调用构造方法
2023年10月10日
1 阅读
3 评论
-1 点赞
2023-10-08
Java——对象编程高级篇【课程笔记】
{mtitle title="类变量和类方法"/}{bilibili bvid="BV1fh411y7R8" page="374"/}{dotted startColor="#ff6c6c" endColor="#1989fa"/}1. 提出问题:运用Java解决问题:package com.ljj.static_; public class ChildGame { public static void main(String[] args) { int count = 0; Child child01 = new Child("小明同学"); child01.join(); count++; Child child02 = new Child("小红同学"); child02.join(); count++; Child child03 = new Child("小黄同学"); child03.join(); count++; System.out.println("一共有"+count+"同学"); } } class Child{ //类 private String name; public Child(String name){ this.name = name; } public void join(){ System.out.println(name+"加入了游戏......."); } }使用类变量改进:package com.ljj.static_; public class ChildGame { public static void main(String[] args) { int count = 0; Child child01 = new Child("小明同学"); child01.join(); child01.count++; Child child02 = new Child("小红同学"); child02.join(); child02.count++; Child child03 = new Child("小黄同学"); child03.join(); child03.count++; System.out.println("一共有"+Child.count+"同学"); } } class Child{ //类 private String name; //定义一个变量count,是一个类变量(静态变量)static 静态 //该变量足以大的特点就是会被本类里面的所有对象实例共享 public static int count = 0; public Child(String name){ this.name = name; } public void join(){ System.out.println(name+"加入了游戏......."); } }2. 类变量内存布局:文章参考:JAVA的内存图理解(栈,堆,方法区)Java static变量保存在哪? a. 静态变量被对象共享b. 因此不影响对静态对象的使用不管在static变量在哪里:static变量是同一个类所有对象共享的static类变量,在类加载的时候就生成了3. 定义类变量定义语法:访问修饰符 static 数据类型 变量名;【推荐】static 访问修饰符 数据类型 变量名;如何访问:类名.类变量名【推荐使用】对象名.类变量名【静态变量的访问修饰符的访问权限和范围和普通属性一样】//代码示例: package com.ljj.static_; public class VisitStatic { public static void main(String[] args) { System.out.println(A.name);//示例1 A a = new A(); System.out.println(a.name);//示例2 } } class A{ //类变量 public static String name="小明"; }实例变量不能通过 类名.类变量名 方式访问即使没有创建对象,类加载了也能访问4、类方法基本介绍静态方法: 访问形式如下访问修饰符 static 数据返回类型 方法名(){}【推荐】static 访问修饰符 数据返回类型 方法名(){}调用方式:类.类方法名 OR 对象.类方法名【访问条件同上】//代码示例: package com.ljj.static_; public class StaticMethod { public static void main(String[] args) { Stu tom = new Stu("tom"); tom.payFee(1000); Stu marry = new Stu("marry"); marry.payFee(10086); Stu.showFee(); } } class Stu{ private String stuName; //累计学费 private static double fee = 0; public Stu(String stuName) { this.stuName = stuName; } //说明: //1. 当方法使用了static修饰后,该方法就是静态方法 //2. 静态方法就可以访问静态属性/ 变量 public static void payFee(double fee){ Stu.fee += fee; } public static void showFee(){ System.out.println("总学费有:"+Stu.fee); } }开发自己的工具类时,可以将方法做成静态方法,方便调用类方法和普通方法都是随着类的加载而加载,将结构信息存储在方法区;类方法中没有this的参数,普通方法中隐含着this的参数类方法可以通过类名调用。也可以通过对象名调用普通方法和对象有关,需要通过对象名调用,不能通过类名调用类方法中不允许使用和对象有关的关键字,比如this和supe。普通方法(成员方法)可以。类方法(静态方法)中只能访问静态变量或静态方法。口诀:静态方法只能访问静态成员。理解: 静态方法可以通过形参传入对象的方式,间接访问到非静态的成员普通成员方法,既可以访问非静态成员,也可以访问静态变量(方法)。小结:静态方法,只能访问静态的成员,非静态的方法,可以访问静态成员和非静态成员(但是必须要遵守访问权限)
2023年10月08日
0 阅读
0 评论
0 点赞