类,是对一类事物的抽象描述,可以类比为设计图
类当中有成员变量(属性)和成员方法,其中又细分为静态与非静态
public class Person {
public int age;//成员变量
public String name;//成员变量
public String sex;//成员变量
public void set() {
//成员方法
}
}(1)大驼峰的命名形式,例如Test,TestDay

(2)一个Java文件最好有一个类,当一个Java文件定义多个类时,显得比较冗杂

(3)public只能修饰与当前Java文件名字相同的类,且只能有一个public


对象,是对类的具体实现,根据类创建的高楼
通过new关键字来进行实例化对象

可以为对象的属性进行初始化
/**
* Created with IntelliJ IDEA.
* Description:
* User: 32309
* Date: 2025-05-27
* Time: 10:36
*/
public class Person {
public int age;
public String name;
public String sex;
public void run() {
System.out.println("这个人正在奔跑!!!");
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
class Test2{
public static void main(String[] args) {
// Person person = new Person(20,"小明","男");
Person person = new Person();
person.age = 10;
person.sex = "男";
person.name = "张三";
System.out.println(person);
}
}
类里面包括对象的各种属性与行为,即成员变量和成员方法

每个成员属性被创建的时候都有自己的初始值: int:0 float:0.0f double:0.0 boolean:false 引用类型:null (列举的目前常见常用的)
构造方法的特征是没有返回值,方法名与类名相同
我们不难发现当我们在类当中new一个对象的时候,new关键字背后都会调用一个方法,那这个方法是什么呢? 答:这个方法调用的是类的无参数构造方法(一般是Java默认给出)

这个时候就有人问了,那我们能不能提供一个带参数的构造方法呢? 答:当然是可以的
public class Person {
public int age;
public String name;
public String sex;
public void run() {
System.out.println("这个人正在奔跑!!!");
}
public Person(int age, String name, String sex) {
this.age = age;
this.name = name;
this.sex = sex;
}
}我们既然实例化该对象肯定是要用到它里面的属性及方法,构造方法的灵活使用可以实例化对象的时候同时给对象属性进行初始化
/**
* Created with IntelliJ IDEA.
* Description:
* User: 32309
* Date: 2025-05-27
* Time: 10:36
*/
public class Person {
public int age;
public String name;
public String sex;
public void run() {
System.out.println("这个人正在奔跑!!!");
}
public Person(int age, String name, String sex) {
this.age = age;
this.name = name;
this.sex = sex;
}
}
class Test2{
public static void main(String[] args) {
Person person = new Person(20,"小明","男");
}
}this的使用可以调用当前类的成员变量
public Person(int age, String name, String sex) {
this.age = age;
this.name = name;
this.sex = sex;
}this在同一类中可以调用不同构造方法
public Person() {
this(20,"小美","女");//调用了带参数的构造方法
System.out.println("不带参数的构造方法!!!");
}this可以调用其他成员方法
public Person() {
this(20,"小美","女");//调用了带参数的构造方法
System.out.println("不带参数的构造方法!!!");
this.run();//调用了run这个成员方法
}this可以指代当前类被其他对象调用时的引用变量

this调用构造方法时,必须书写在该构造方法最上面,这是语法限定
构造方法之间可以使用this相互调用,且可以调用普通成员方法,但是普通成员方法不能调用构造方法,且构造方法的调用不能形成环
this的使用依赖于对象,可以指代对象,所以不能指代被static修饰的成与变量和方法
包也可称为文件夹,日常生活中我们不同文件夹放不同集合体,例如有怀旧音乐文件夹和流行音乐文件夹,而其中都有一个相同名字的歌曲,但是他们分别是不同歌手演唱不同作曲风格,只是恰巧同名而已
Java当中的类名写多了难免会重复,你想定义多个测试类Test时,包就应运而生

包的名称是小写的英文
当你需要一次创建多个包且有上下级关系时,可以采用域名倒写加点号方式书写 例如:com.jinghua.www,它就会把www作为你可以书写的第一个包




中文翻译是私有的,顾名思义,即是密封起来的,外面用不到的
类的创建就是让别人用的,所以显然这不能用来修饰类的,那么只可能是用来修饰成员变量与成员方法的

我们发现图片中在不同类当中通过对象不能引用被private修饰的成员变量和成员方法,会爆红线,编译不能通过
中文翻译为受保护的,顾名思义,跟我有直接或者间接关系的才受保护,跟我没有一点关系的,不受保护,同一个包属于有关系,不同包的子类那也是有关系,要是不同包的不同子类显然是没有关系的,所以只能在同一个包或者不同包子类使用
同样的不能够修饰类,用来修饰成员变量和成员方法

公开的,所有人都可以用,不论是同包不同包,不论子类非子类
可用来修饰类,也可以用来修饰成员属性与方法
当修饰类时,修饰的类必须和当前java文件名一致

访问修饰限定符都是用来修饰成员属性和成员方法的
public为较特殊的限定符,可以用来修饰类,但修饰类的时候有具体限制
包访问权限即成员属性和方法默认不写时,系统默认认定该权限制裁同一个包内开放

static意思为静态的,在内存中只存在一块,并且伴随着类的创建而创建,类的销毁而销毁,只在类加载过程中生成一次,只要类存在,静态化的属性与方法就不会消失
以静态代码块举例,演示只存在一次

static用来修饰静态成员属性和方法,被修饰的变量和方法存在于方法区当中,不存在与堆上,意味着不需要靠对象来调用static修饰的属性与方法,依靠类名+点号访问

在同一个类当中,静态方法内不能直接调用非静态成员与方法,这是因为非静态方法创建不依赖于对象,所以不能像在普通成员方法那样直接调用成员属性,要在静态方法中调用成员属性与方法,只能先new实例化一个对象,再通过对象引用调用

在同一个类当中,普通成员成员方法可以直接调用静态成员变量与方法

静态代码块在类中只执行一次,且只在类被加载时候执行

实例代码块也叫做构造代码块,意思是当你调用构造函数的时候,它也一定会被执行

静态代码块执行速度大于实例代码块,实例代码块又大于构造方法

类与对象知识点较多,也较为抽象,建议反复观看,同时看完之后一定要写博客来加强记忆,倒逼着自己加深印象!!!
你我未来可期,不要松懈,一起加油!!!