欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

JAVA学习笔记-static

时间:2023-08-05
static

public class User { // 在线人数信息:静态成员变量 public static int onLineNumber = 161; // 实例成员变量 private String name; private int age; public static void main(String[] args) { // 1、类名.静态成员变量 User.onLineNumber++; // 注意:同一个类中访问静态成员变量,类名可以省略不写 System.out.println(onLineNumber); // 2、对象.实例成员变量 // System.out.println(name); User u1 = new User(); u1.name = "猪八戒"; u1.age = 36; System.out.println(u1.name); System.out.println(u1.age); // 对象.静态成员变量(不推荐这样访问) u1.onLineNumber++; User u2 = new User(); u2.name = "孙悟空"; u2.age = 38; System.out.println(u2.name); System.out.println(u2.age); // 对象.静态成员变量(不推荐这样访问) u2.onLineNumber++; System.out.println(onLineNumber); }}

public class Student { private String name; private int age; /** 实例方法:无static修饰,属于对象的,通常表示对象自己的行为,可以访问对象的成员变量 */ public void study(){ System.out.println(name + "在好好学习,天天向上~~"); } /** 静态方法:有static修饰,属于类,可以被类和对象共享访问。 */ public static void getMax(int a, int b){ System.out.println(a > b ? a : b); } public static void main(String[] args) { // 1、类名.静态方法 Student.getMax(10, 100); // 注意:同一个类中访问静态成员 可以省略类名不写 getMax(200, 20); // 2、对象.实例方法 // study(); // 报错的 Student s = new Student(); s.name = "全蛋儿"; s.study(); // 3、对象.静态方法(不推荐) s.getMax(300,20); }}

public class ArrayUtils { /** 把它的构造器私有化 */ private ArrayUtils(){ } /** 静态方法,工具方法 */ public static String toString(int[] arr){ if(arr != null ){ String result = "["; for (int i = 0; i < arr.length; i++) { result += (i == arr.length - 1 ? arr[i] : arr[i] + ", "); } result += "]"; return result; }else { return null; } } /** 静态方法,工具方法 */ public static double getAverage(int[] arr){ // 总和 最大值 最小值 int max = arr[0]; int min = arr[0]; int sum = 0; for (int i = 0; i < arr.length; i++) { if(arr[i] > max){ max = arr[i]; } if(arr[i] < min){ min = arr[i]; } sum += arr[i]; } return (sum - max - min)*1.0 / (arr.length - 2); }}

先封装

import java.util.Random;public class VerifyTool { /** 私有构造器 */ private VerifyTool(){ } /** 静态方法 */ public static String createCode(int n){ // 1、使用String开发一个验证码 String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 2、定义一个变量用于存储5位随机的字符作为验证码 String code = ""; // 3、循环 Random r = new Random(); for (int i = 0; i < n; i++) { int index = r.nextInt(chars.length()); // 4、对应索引提取字符 code += chars.charAt(index); } return code; }}

public class Register { public static void main(String[] args) { // 验证码: System.out.println("验证码:" + VerifyTool.createCode(5)); }}

public class Login { public static void main(String[] args) { // 验证码: System.out.println("验证码:" + VerifyTool.createCode(10)); }}

public class Test { // 静态成员变量 public static int onLineNumber; // 实例成员变量 private String name; public static void getMax(){ // 1、静态方法可以直接访问静态成员,不能访问实例成员。 System.out.println(Test.onLineNumber); System.out.println(onLineNumber); inAddr(); // System.out.println(name); // 3、静态方法中不能出现this关键字 // System.out.println(this); } public void run(){ // 2、实例方法可以直接访问静态成员,也可以访问实例成员 System.out.println(Test.onLineNumber); System.out.println(onLineNumber); Test.getMax(); getMax(); System.out.println(name); sing(); System.out.println(this); } public void sing(){ System.out.println(this); } // 静态成员方法 public static void inAddr(){ System.out.println("我们在黑马程序员~~"); } public static void main(String[] args) { }}

public class TestDemo1 { public static String schoolName; public static void main(String[] args) { // 目标:学习静态代码块的特点、基本作用 System.out.println("=========main方法被执行输出==========="); System.out.println(schoolName); } /** 特点:与类一起加载,自动触发一次,优先执行 作用:可以在程序加载时进行静态数据的初始化操作(准备内容) */ static{ System.out.println("==静态代码块被触发执行=="); schoolName = "黑马程序员"; }}

public class TestDemo2 { private String name; /** 属于对象的,与对象一起加载,自动触发执行。 */ { System.out.println("==构造代码块被触发执行一次=="); name = "张麻子"; } public TestDemo2(){ System.out.println("==构造器被触发执行=="); } public static void main(String[] args) { // 目标:学习构造代码块的特点、基本作用 TestDemo2 t = new TestDemo2(); System.out.println(t.name); TestDemo2 t1 = new TestDemo2(); System.out.println(t1.name); }}

import java.util.ArrayList;public class StaticCodeTest3 { /** 模拟初始化牌操作 点数: "3","4","5","6","7","8","9","10","J","Q","K","A","2" 花色: "♠", "♥", "♣", "♦" 1、准备一个容器,存储54张牌对象,这个容器建议使用静态的集合。静态的集合只加载一次。 */ // int age = 12; public static ArrayList cards = new ArrayList<>(); /** 2、在游戏启动之前需要准备好54张牌放进去,使用静态代码块进行初始化 */ static{ // 3、加载54张牌进去。 // 4、准备4种花色:类型确定,个数确定了 String[] colors = {"♠", "♥", "♣", "♦"}; // 5、定义点数 String[] sizes = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"}; // 6、先遍历点数、再组合花色 for (int i = 0; i < sizes.length; i++) { // sizes[i] for (int j = 0; j < colors.length; j++) { cards.add(sizes[i] + colors[j]); } } // 7、添加大小王 cards.add("小"); cards.add("大"); } public static void main(String[] args) { System.out.println("新牌:" + cards); }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。