main
public class MainTest {
//打印main方法中的形参值 探索传的实参是什么
public static void main(String[] args) {
System.out.println("个数"+args.length);
System.out.println("传递给main方法的实际参数为");
for(int i =1;i<= args.length;i++){
System.out.println(args[i]);
}
}
}
public 共有的:在任何位置都可以使用main方法
static 静态:隶属于类层级
void 无返回值:
main string 字符串类型的数组
[]args 一维数据
还是不知道在正常程序里 一维数组传的是什么 后续需要了解
static关键字和继承
想要只得到一个对象 且对象不能被随便null
单例类 单例设计模式eg windos的任务
饿汉式和懒汉式的区别就在于在调用对象的创建返回方法时 有没有已经创建好对象
考虑到多线程抢占资源的问题 推荐饿汉式 后续注意了解这个问题
懒汉式:
public class Singleton {
//私有化构造方法
private Singleton(){
}
//new 好对象送出去
//对象层级 加静态 变成公共区域 升级为类层级
// 但是只加静态 不能阻止外部对其进行修改 所以要进行分装 加private 将其成员变量私有化 不能通过类.的方法访问
//但是加了private后 外部又不能获取了 还是通过内部的共有方法将其送出去
private static Singleton sin = null;
//提供公有的get方法 但是不加static必须得通过对象调用 所以改为静态共有 提升为类层
public static Singleton getInstance(){
Singleton sin = new Singleton();
return sin;
}
}
饿汉式:
public class Singleton {
//私有化构造方法
private Singleton(){
}
//new 好对象送出去
//对象层级 加静态 变成公共区域 升级为类层级
// 但是只加静态 不能阻止外部对其进行修改 所以要进行分装 加private 将其成员变量私有化 不能通过类.的方法访问
//但是加了private后 外部又不能获取了 还是通过内部的共有方法将其送出去
private static Singleton sin = new Singleton();
//提供公有的get方法 但是不加static必须得通过对象调用 所以改为静态共有 提升为类层
public static Singleton getInstance(){
return sin;
}
}
public class SingletonTest {
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1 == s2);
//想要只能新建一个对象 需要从构造器入手
}
}
加载流程

继承
1.不能继承构造方案和私有方法
2.成员的初始化 继承的属性 调用的是父类的构造方法
3.父类包含子类

c class Person {
private String name;
private int age;
public void eat(String food){
System.out.println("food");
}
public void sleep(String time){
System.out.println("time");
}
public void play(String game){
System.out.println("game");
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Person() {
System.out.println("我是人的无参构造函数");
}
public Person(String name, int age) {
this.name = name;
this.age = age;
System.out.println("我是人的有参构造函数");
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
public class Worker extends Person{
private int salary;
public void setSalary(int salary) {
this.salary = salary;
}
public int getSalary() {
return salary;
}
public Worker() {
System.out.println("我是工人的无参构造函数");
}
public Worker(String name, int age, int salary) {
super(name, age);
this.salary = salary;
System.out.println("我是工人的有参构造函数");
}
public void show(){
System.out.println("今天的砖头格外烫手");
}
}
public class WorkTest {
public static void main(String[] args) {
Worker worker = new Worker("la",12,2200);
//好像没有继承构造方法
//不能继承构造方案和私有方法
String s1 = worker.toString();
System.out.println(s1);
worker.eat("豆芽");
worker.play("王者荣耀");
worker.show();
}
}
本文探讨了Java中的main方法参数用途,特别是字符串数组args用于接收命令行参数。同时,讲解了单例模式的饿汉式和懒汉式实现,强调了在多线程环境下饿汉式的推荐使用。文章还通过示例展示了Person和Worker类的继承关系,说明了构造方法和成员初始化在继承中的行为。
223

被折叠的 条评论
为什么被折叠?



