java面向对象(一)
面向对象
面向过程(pop)
分析具体的实现步骤一步步实现
面向对象(oop->object-oriented programming)
以分类的方式进行思考和解决问题,对事物整体进行分析,进行分类
案例:把大象装进冰箱
面向过程方式思考
1.打开冰箱门
2.把大象装进去
3.关闭冰箱门
面向对象方式思考
设计类:
1.人类(装东西)
2.大象
3.冰箱(存储东西)
4.门(开门,关门)
面向对象也是离不开面向过程的,具体细节的实现还是以面向过程进行
Java类
类是一个模板,是对用一个类实物(对象)的共同属性`特征进行定义,把这些信息创建一个文件(.java类)记录下来.
类的定义:
? 类的结构:
? 变量:事物属性的描述;
? 方法:事物的行为;
? 构造方法:用于创建对象;
? 内部类:即在类体中声明的类;
? 块:一段没有名称的代码块
? 设计类:
? 1.发现类 语法
? 2.定义类的属性,特征,变量
? 3.定义类的行为,功能,方法
/**
* 发现类
* [访问权限修饰符] [修饰符] class(定义类) 类名 {
* 变量:事物属性的描述;
* 方法:事物的行为;(可以做的事情)
* 构造方法:用于创建对象;
* 内部类: 即在类体中声明的类。
* 块:一段没有名称的代码块
* }
* 访问修饰符有两种 public 或者 不写
* 修饰符: final , abstract
* 类名: 类名首字母大写,见名知意,驼峰表示
*/
public class People {
/**
* 发现共有属性
* 成员变量定义
* [访问权限修饰符] [修饰符] type 变量名;
*/
String name;
String sex;
int age;
/**
成员方法
人有睡觉吃饭学习等行为
[访问权限修饰符] [修饰符]/void 方法名(参数类型 参数名){
sout();
[return 返回值;]
}
*/
/*睡觉的方法*/
public void Sleep() {
System.out.println(name + "说费觉觉");
return;
}
/* 吃饭的方法*/
public void Eat() {
System.out.println(name + "说开饭了,冲冲冲");
}
/*学习的方法*/
public void Study() {
System.out.println(name + "说一秒不学习,浑身难受");
}
}
Java对象
对象是类的一个实例,是以类为模板,在内存中创建的实际存在的实例.
对象其实就是具体存在的实例,创建对象就是实例化对象
/*
类定义好后,是一个文件,但不能使用
以类为模板创建对象,对象是实例,视具体存在的,可以被使用
People cui = new People();
new + People 类的构造方法,在内存中创建一个具体的对象
People cui 以People类为类型声明一个变量cui
= 让cui变量 指向(引用)内存中的对象
cui.name = "张三";
使用cui变量 . 调用对象中的属性(变量)\行为(方法)
*/
People zhang = new People();
zhang.name = "张三";
zhang.age = 21;
zhang.sex = "男";
System.out.println("姓名:" + zhang.name + "\t性别:" + zhang.sex + "\t年龄:" + zhang.age);
zhang.Eat();
zhang.Sleep();
zhang.Study();
变量分类
按数据类型分为:
? 基本类型:8种
? 引用数据类型:以类作为类型,数组
按照位置分类为:
成员变量:事物的属性
在类中定义,方法体之外
? 可以使用java中支持的所有的数据类型
? 可以不进行初始化赋值,在创建对象时,虚拟机会默认赋值.
? String :null char:" " int:0 Boolean:false
? 在成员方法中可以访问成员变量
局部变量:事物的行为
在方法,构造方法,代码块中定义的,支持所有的数据类型
? 使用前初始化赋值,方法结束后变量随之销毁
方法分类
成员方法
/*
成员方法
[访问权限修饰符] [修饰符] [返回值类型]/void 方法名(参数类型 参数名){
语句块
[return 值]
}
*/
public void Sleep() {
System.out.println(name + "说费觉觉");
return;
}
//int day,String deep 方法参数也是局部变量
public void Play(int day,String deep){
System.out.println(name+deep+"使劲玩");
}
People zhang = new People();
//成员方法必须通过对象调用
zhang.Sleep();
zhang.Play(22222,"哈哈哈哈");