类的定义

  • 确定类名
    • 大写
  • 确定属性和方法
    • 一般来讲小写
    • 张三家养老两只宠物,一直,一条,猫叫小花,狗叫小黑,猫可以抓老鼠,狗可以看门,张三负责喂养。猫吃,狗吃骨头
      • name
      • 喂养方法
    • 宠物(继承)
      • name
      • 抓老鼠
      • 吃东西
      • 看门
      • 吃骨头
    • 骨头
    • 确定属性
      • 每一个属性怎么写
      • 命名
      • 类型
      • 定义语法:【修饰符public】类型 属性名;
    • 确定行为
      • 就是方法,与面向过程中的函数类型,面向过程自己定义步骤,每一步就是一个函数,通过函数之间的调用,实现需求
      • 方法名:规范
      • 牢记三要素
      • 类的方法,行为跟静态方法不同,不需要static修饰
      • static:静态的,可以直接类名调用方法,不用创建对象
      • 静态方法一般都是工具方法,一旦是类的方法,或者对象的行为,就与对象相关了,那就不用static,就普通方法
    • 这个类不能活不允许有main方法 的,main是程序的入口,启动程序,我们的类只是一个数据(复杂的数据,包含了其他数据和行为)
    • 单独定义程序的入口
    • 类是模板,操作的是对象,创建对象,然后进行操作
/*** @Author: * @Date: 2020/10/16 20:12* @Description: 学生类* @version: 1.0*/
public class Student {/*属性*/int id = 10;//编号String name;//姓名char sex;//性别public void study() {System.out.println("正在学习");}public void eat() {System.out.println("吃饭");}public void sleep() {System.out.println("睡觉");}
}

对象的创建

new关键字创建

  • 我们通常用的创建对象的方式,只有一种,通过new关键字(后期可能会遇到不是的)
  • 对象的创建:
  • Student s1 = new Student();
    • Student:数据类型,确定我要创建什么对象(什么类型的数据)
    • s1:对象,创建好了的对象,实质就是一个变量,引用数据类型
    • new:关键字,指令JVM中就是存在的,告诉JVM,需要创建对象,申请空间用的
    • Student():构造函数,赋值给属性
public class Demo {public static void main(String[] args) {//创建什么?//新建一个student类型的对象Student s1 = new Student();//创建了一个对象,赋值给了Student类型的变量new Student();//创建了一个对象,什么都没做}
}

过程

  • JVM读取到new指令,知道要创建对象了
  • 看要创建对象的这个类有没有加载到JVM中,有,开始申请空间,没有,先加载类,找不到加载,报错
  • 去已经加载好的内存中读取类的信息了,知道了你对象需要多大空间,有哪些属性,哪些行为(有没锁)
  • 属性开始初始化,数据类型的默认值
  • 赋值,通过构造函数,初始化对象
  • 开始返回对象,如果有赋值,开始给变量赋值

使用对象(里面的属性和行为)

  • 通过变量名操作对象
  • 访问属性和行为
  • 成员方位符“.”,看起来是一个小数点,实际上就是一个小数点,这只是键盘上,含义,用来访问类的成员
  • 成员:
    • 成员变量:类的属性是数据,变量,就是成员变量
    • 成员方法:类里面的方法我们称为成员方法
public class Demo {public static void main(String[] args) {//创建什么?//新建一个student类型的对象Student s1 = new Student();//创建了一个对象,赋值给了Student类型的变量new Student();//创建了一个对象,什么都没做System.out.println(s1.id);s1.sleep();//调用方法}
}

变量的作用域

变量的类型

  • 局部变量
    • 定义在局部,方法内部,定义在代码块中
  • 全局变量
    • 成员变量,定义在类中
  • 静态变量
    • 用static修饰的变量

作用域

  • 局部变量,作用于从声明开始,到它所在的代码块结束。
  • 成员变量,作用于整个类,整个类都可以使用
  • 静态变量,作用于整个类,跟类有关系,类变量