0.面向对象思想?
面向对象说白了就是引用别人做好的东西,而不需要自己一步步去实现过程
强调的是通过调用对象的行为(方法)来实现功能。
1.什么是对象?
1.1概述:万物皆为对象,生活中你所能看到的一切事物都是对象
1.2举例:电脑,手机,狗,张三,柯老师。。。
1.3特点:1.属性:对象的外观、特征
例如:电脑的属性:颜色:黑色 ,价格:6800,重量:10kg…
2.方法:对象的行为、动作
例如:电脑的方法:显示信息,耗电。。。
2.什么是类?
2.1概述:类是同一种类型事物的总称,例如小猫、小狗、小熊都是动物类Animal
2.2类和对象之间的关系是什么?
类是抽象的概念,仅仅是模板,对象是一个你能够看得到、摸得着的具体实体
3.如何创建一个类,关键字是class
3.1创建一个动物类
3.1.1属性:姓名、颜色、体重、年龄、性别
3.1.2方法:吃、叫、跑
public class Animal {
//01.属性
String name;
String color;
double weight;
int age;
char sex;
//02.方法
public void eat(){
System.out.println(“我能吃”);
}
public void say(){
System.out.println(“我能say”);
}
public void run(){
System.out.println(“我能run”);
}
}
4.如何创建一个对象
Animal cat = new Animal();
5.1对象属性赋值
cat.name = "小白";
cat.color = "白色";
cat.age = 3;
cat.weight = 10;
cat.sex = '公';
//输出对象的姓名属性
System.out.println(cat.name);
5.2使用cat调用方法
cat.eat2();
6.创建对象的内存图分析
6.1概述:JDK里面有一个JVM(java虚拟机),虚拟机是已经分配好内存了的
JVM将自身的内存分为以下几个部分
1.栈内存stack 2.堆 3.方法区 4.程序计数器 5.本地方法栈
6.2执行流程【目前了解即可】
1.右键运行后Student类会被编译成字节码文件.class文件加载到方法区
2.main方法进入栈,创建一个对象Student stu = new Student();
stu:对象名字,其实是一个变量,引用类型的变量,引用一个地址,16进制地址例如0x234
3.new Student();会在堆内存中开辟一块空间,空间是由地址值的就是0x234,并将属性初始化,给默认值
基本数据类型 整数(byte,short,int,long) 0
浮点型(float,double) 0.0
字符型(char) ’\u0000’
布尔型(boolean) false
引用类型 String 数组 对象 接口 null
4.继续执行main方法,给堆中的默认属性值重新赋值,最后调用sleep方法入栈,输出结果
cjt.name = "陈俊涛";
cjt.age = 18;
cjt.sex = '男';
cjt.s_class = "2110";
cjt.address = "羽毛球馆";
cjt.sleep();