Java基础

javac java两个命令的区别

javac 把.java文件编译称 .class文件 java执行 calss文件

一个java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作

  • 类: 类是一个模板,它描述一类对象的行为和状态
  • 对象: 对象是类的一个实例,有状态和行为
  • 方法:方法就是行为
  • 实例变量: 每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定
public class 
    public static void main( String[] args){

    }
  • public 访问修饰符
  • static 关键字
  • void 返回类型
  • main方法名

主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

访问控制修饰符: default, public, protected private

java变量:

  • 局部变量
  • 类变量
  • 成员变量

继承

  • 一个类可以由其他类派生,而且存在一个类具有所有你需要的属性或者方法,可以将新创建的类继承该类

接口

  • 在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
  • 接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

java中用@什么意思:注解 @Override 重写

类的成员

  • 属性:对应类中的成员变量
  • 方法: 对应类中的成员方法
  • 构造器:类中的默认初识化值
  • 代码块:对Java 类或对象进行初始化
  • 内部类:类的成员使用、类的使用

New 对象 在堆中 栈中存放p1的局部变量

属性不同于局部变量 属性也放在堆中 heap

共同点: Public class和class都是对类进行声明,用于定义类

一、Public class: 1 如果使用了该类,则类名必须与文件名一致 2 被public修饰的类可以被其他包访问

二、Class: Class类可以访问Public类,但不能被其他包访问

【Conclusion】每个文件中只能有不多于1个Public类(也可以没有),可以理解为main部分

笔记:https://blog.csdn.net/PorkBird/article/details/113666542

成员变量 直接定义在类{} 内部 局部变量

构造器 作用 创建对象,初始化属性值 如果没有显示的,就会默认一个空的构造器

JAVABean java的可重用组件

  • 类是公共的
  • 有一个无参的公共的构造器
  • 有属性,且有对应的get,set方法

表对应的类可以生成一个javaBean

通过空参的构造器去造对象 通过反射 去造对象

int转换称 字符串 "" + int

UML 类图

关键字 this

重写 override overwrite 子类对父类方法的重写 super 关键字

框架 = 注解 + 反射 + 设计模式

子类继承父类,父类一定要有无参构造器 java默认的在调用子类构造方法前先调用父类的构造方法,如果你没有指定调用父类的哪个构造方法,那么java默认调用父类无参数的构造方法。

什么时候用反射

  • 动态的时候,根据外部条件,创建对象

反射和封装不矛盾 封装是为了告诉你不要用,不是不能用

通过反射 创建对应的运行时类的对象 newInstance() 内部调用了运行时类的空参构造器 创建对象,一定要用构造器

动态创建代理类对象, 代理类并没有显示的定义,而是根据被代理的对象是谁去动态创建 代理对象,体现了反射的动态性

AOP 面向切面编程 不改变源代码添加新的功能 有点像 装饰器,在函数的前后,动态的执行其他的逻辑

java se 开始

输入语句:

/*
如何从键盘获取不同类型的变量,需要使用Scanner类

具体步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化;
3.调用Scanner类的相关方法,来获取指定的变量。
*/
import java.util.Scanner;

class IFTest{
	public static void main(String[] args){
		//声明一个Scanner
		Scanner scan = new Scanner(System.in);

		int num = scan.nextInt();

		System.out.println(num);
	}
}

java如何 写 for

for(int i :arr){ sout(i) }

module project package

1655547756697