public class people {
//属性
int age=22;
String name="limu";
//成员方法 没有static关键字
public void sleep() {
System.out.println("进入休息状态...");
} //休息
public void eat() {
System.out.println("进入吃饭状态");
} //吃饭
public void study() {
System.out.println("进入学习状态");
}//学习
}
创建people的类
通常情况下 一个类并不能直接使用 需要根据类创建一个对象 ,才能使用
import 导包 、也就是指出需要使用的类 在什么位置
import 包名称 类名称
当和当前类属于同一个包的情况 可以省略不写
通过类创建一个对象
类名称 对象名 =new 类名称()
使用 :
使用成员变量 :对象名.成员变量名
使用成员方法 : 对象名.成员方法名
带有static 的方法就是普通的方法 不需要类和对象就能生成
使用对象类型作为方法的参数
java成员变量和局部变量的区别
// 定义的位置不一样
局部变量 :在方法的内部
成员变量:在方法的外部直接写在类当中
//作用范围不一样
局部变量:只有在方法中能使用
成员变量:整个类都可以通用
//默认值不一样
局部变量:没有默认值
成员变量:如果没有赋值,会有默认值
封装性在java里的体现
1、方法就是一种封装
2、关键字private也是一种封装 代表私有化
间接访问private成员变量 就是定义一对Getter/Setter方法
必须叫setxxx或者getxxx命名规则
对于Getter来说 不能有参数 返回值类型和成员变量对应
对于Setter来说 不能有返回值 参数类型和成员变量对应
this 关键字
//当方法的局部变量和类的成员变量重名的时候,根据就近原则,优先使用局部变量
//如果需要访问本类中的成员变量 需要使用格式
//this.成员变量名
//谁调用的方法,谁就是this
//在方法的内部才能用this
构造方法
构造方法是专门用来创建对象的方法 当我们用new来创建对象的时候 其实就是在调用构造方法
public 类名称(参数类型 参数名称){
//方法体
}
注意事项:
1、构造方法的名称必须和所在的类名称完全一样
2、构造方法不要写返回值类型 连void也不要写
3、用途 用来使用对象
4、new 就是在调用构造方法 用new创建对象的时候就执行了构造方法里的语句
5、如果没有编写任何构造方法 那么编译器就会赠送一个构造方法 没有任何参数、方法
6、一旦编写了任何一个构造方法 那么编译器将不再赠送
7、构造方法也是可以进行重载的、方法名称相同、方法参数不同 这个叫重载
子类就是一个父类,所以是继承关系
抽象类的关键字 abstract
如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法
抽象类不能直接new 创建对象
抽象类可以有构造方法
publuc abstract class abc{}
public abstract void abc(){}
接口就是一种公共的规范标准。
只要符合规范标准 就可以大家通用。
接口定义的基本格式:
//接口就是多个类的公共规范
//接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。
//如何定义一个接口的格式
/* public interface 接口名称{
// 接口内容
/*
/*
接口的私有方法定义
/*
* 格式 private 返回值类型 方法名称(参数列表){
* 方法体
* }
*/
面向对象三大特征:封装性、继承性、多态性
extends继承或者implementers实现,是多态性的前提
一个对象拥有多个形态 即成为多态性、例如 小明是一个学生,但同时也是一个人
小明同时具备了学生形态、和人类形态
多态的格式和使用:
public ArrayList send(int totalMoney,int count){}
/*
* 对象的向上转型,就是父类引用指向之类对象
* 向上转型一定是安全的 从小范围转向了大范围
* 但是向上转型有一个弊端:对象一旦向上转型为父类
* 那么就无法调用子类原本特有的内容
* 解决方案:用对象的向下转型(还原)
*/
/*
* 对象的向下转型,其实是一个还原的动作。
* 格式:
* 子类名称 对象名 = (子类名称) 父类对象;
* 含义:将父类对象,【还原】成为本来的子类对象。
* 本来是猫不能还原成为狗
* Animal animal = new Cat(); //本来是猫向上转型成为动物
* Cat cat = (Cat) animal; //本来是猫 ,
* 已经被当做动物了, 还原回来成为原来的猫
*
* 注意事项:
* A、必须保证对象本来创建的时候,就是猫,才能向下转型为猫
* B、如果对象创建的时候本来不是猫,现在非要向下转型成为猫,就会报错
*/