- 非静态方法的声明与调用
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
demo05.eat();
}
public void eat(){
System.out.println("每日三省吾心");
}
}
- 面向对象
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。是计算机编程技术发展到一定阶段后的产物。
对象:万物皆对象,客观存在的事物都是对象
类: 类定义了一种抽象数据类型,是模板,确定对象将会拥有的特征(属性)和行为(方法)
类的特点: 类是对象的类 具有相同的属性和放到的一组对象的集合
对象的属性:
属性:对象具有的各种特征,每个对象的属性有具有特定的值,可以理解为对某类事物的描述
例如:狗类
属性:品种、尺寸、颜色、年龄
注意:对象的属性既具有默认值,这个默认值与相对的类型相关
数据类型:byte short int long double float char boolean String
默认值: 0 0 0 0 0.0 0.0 空字符 false null
类是对象的抽象,仅仅是一个模板,在现实世界中是不存在的;而对象是具体的实例,是类这个模板的具体实例。
- 类的声明
public class Dog {
/**
* 品种
*/
String breed;
/**
* 尺寸
*/
int size;
/**
* 颜色
*/
String color;
/**
* 年龄
*/
int age;
public void eat(){
System.out.println("eat");
}
public void run(){
System.out.println("run");
}
public static void sleep(){
System.out.println("sleep");
}
}
左侧是类的声明 右侧是类的实例化
- 静态方法与非静态: 静态方法可以通过类名 点 方法名的方式调用 如下
- 将类名实例化后 可以调用非静态方法 如下
总结:
静态方法可以通过类名+“.”+方法名调用,但不适用于非静态方法
实例化对象后 可以调用静态方法 也可以调用非静态方法
静态方法可以调用静态方法 但不能直接调用非静态方法
非静态方法可以调用静态方法和非静态方法
- 成员变量与局部变量
写在方法外面的是 成员变量 写在里面的是 局部变量
成员变量 :在类中定义,用来描述对象将要有什么
局部变量: 在类的方法中定义,在方法中临时保存数据
在同一个方法中,不允许有同名的局部变量
在不同的方法中,可以有同名的局部变量
作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
初始值不同
成员变量有默认的初始值
局部变量没有默认的初始值,必须自行设定初始值
存储位置不同
成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失
局部变量是在方法被调用时存在于栈中,方法调执行结束,从栈中清除
生命周期不同
对象的创建而创建,对象回收时,成员变量消失
随着方法的调用被创建,方法执行结束,从栈中清除