Java入门教学之面向对象
1.面向对象与面向过程
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。强调的是过程,我来干什么?“我”作为过程的执行者。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。强调的是对象,我在这个过程中作为指挥者。
面向对象的优点
面向对象有什么好处
1.更贴近人的思维(懒人思维)。
2.将复杂的问题简单化。
3.从事物的执行者转换为事物的指挥者。
2. 类和对象
1.Java中最基本的单位就是类
2.类:对抽象事物的描述(模板)
3.对象:对抽象事物的具体描述(利用类创造出来具体事物)
4.如何描述一个对象
属性(成员变量 实例变量)
行为(方法)
简单定义一个学生类:
class Student{
//成员变量(属性):类中 方法外
String name ;
int age;
String gender;
//成员方法(行为 方法) 先不写static 其他和函数声明一样
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
public void playGame(String gamename) {
System.out.println("玩" + gamename);
}
}
成员变量 和 局部变量的区别
1.生命周期(出生到死亡)
成员变量:随着对象的创建而创建,随着对象的销毁而销毁。
局部变量:随着方法的执行而创建,随着方法的结束而销毁。
2.初值
成员变量:如果没有初值系统会给默认值。
局部变量:没有初值不能使用。
3.作用域
成员变量:在整个类中有效。
局部变量:在方法中有效。
4.书写位置
成员变量:类中方法外。
局部变量:方法上或方法中。
5.在内存中的表现
成员变量:保存在堆内存中的。
局部变量:运行在栈内存中。
成员变量与局部变量在代码中的简单体现:
class Car{
//车名
String name = "拖拉机";
//排气量
String displacement = "不知道";
//颜色
String color = "红色";
//开车
//局部变量的书写位置:声明在方法上或者方法中
public void run(int a) {
//就近原则
//String name = "wanghong";
System.out.println(name);
//局部变量不给初值不能直接使用
// int num;
// System.out.println(num);
System.out.println("开车");
}
//介绍自己的方法
public void sayHi() {
//成员变量的作用域:整个类都能访问到
System.out.println("车名:" + name);
System.out.println("排量:" + displacement);
System.out.println("颜色:" + color);
}
}
面向对象的特征:封装 继承 多态
封装
方法本身就是一种封装。
将代码的实现或者属性隐藏起来,不让外界直接访问。
对外提供访问方法(间接访问)。
关键词 private(私有)
被private修饰的成员变量,只能被本类进行访问。
封装在具体函数中的实现
class Phone{
//成员变量私有化
private String name;
private String color;
//私有化后需要提供对外的访问的方法
//每一个成员变量需要提供一对方法 赋值(set方法)和取值(get方法)
//命名规范 set+成员变量名() 小驼峰
public void setName(String name) {
//就近原则
//使用关键字 this
//this表示本类的对象
//this.name 表示 本类的name属性
//this 谁调用了这个方法 这个对象就是this
this.name = name;
}
public String getName() {
return name;
}
public void setColor(String color) {
this.color = color;
}
public String getColor() {
return color;
}
public void sayHi() {
System.out.println(name + "" + color);
}
}