一,面对对象
1.面对对象的概述
我们做事情需要一步一步的进行,先要知道我们要做什么,在决定怎么做,最后再去实现这件事情。在这个过程中,我们都有参与每一个过程,要面对每一个过程,这就是我们面对对像的最具体的实现。
2.面对对象的思想特点
(1)是一种更符合我们思想习惯的思想
(2)可以将复杂的事情简单化
(3)将我们从执行者变成了指挥者,角色发生了转换
2,面对对象的特征
封装
继承
多态
3.面对对象开发
就是不断的创建对象,适用对象,指挥对象做事情
4.类
学习Java语言最基本的单位就是类,我们应该把事物用一个类来体现。
由此我们就得到了现实中的事物和类的对应关系:
属性 ----------------- 成员变量
行为 ----------------- 成员方法
定义类就是定义类的成员(成员变量和成员方法)
a:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
b:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
5.类和对象的概念
a:类:是一组相关的属性和行为的集合
b:对象:是该类事物的具体体现
c:举例:
类 学生
对象 班长就是一个对象
案例演示:
A:学生事物:
属性: 姓名 , 年龄 ,
行为: 吃饭 , 睡觉 ,
B:学生事物与学生类的对应关系
属性 ----- 成员变量
行为 ----- 成员方法
public class Student {
String name = "zx";
int age;
public void eat() {
System.out.println("吃饭");
}
public void sleep() {
System.out.println("睡觉");
}
}
6.面对对象的基本知识
A:文件名问题:
在一个java文件中写两个类:一个基本的类,一个测试类。
建议:文件名称和测试类名称一致。
B:如何使用呢?
创建对象使用。
C:如何创建对象呢?
格式:类名 对象名 = new 类名();
D:如何使用成员变量呢?
格式:对象名.变量名
E:如何使用成员方法呢?
格式:对象名.方法名(…)
7.成员变量和局部变量的区别
A:在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上(形参)
B:在内存中的位置不同
成员变量:在堆内存
局部变量:在栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
注意事项:: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
8.方法的形式参数是类名的时候调用
A:Java中参数传递
形式参数:
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
B:方法的参数是类名
如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
9.匿名对象
A:什么是匿名对象?
就是没有名字的对象
B:匿名对象应用场景
a:调用方法,仅仅只调用一次的时候。
b:匿名对象可以作为实际参数传递
二,封装
1.封装概述
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
2.封装好处
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
3.封装原则
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
4.private关键字的概述
A:private关键字特点
a:是一个权限修饰符
b:可以修饰成员变量和成员方法
c:被其修饰的成员只能在本类中被访问
5.private应用的标准案例
A:private最常见的应用:
(1):把成员变量用private修饰
(2):提供对应的getXxx()和setXxx()方法
public class Student {
//姓名,语文成绩,数学成绩,英语成绩
private String name;
private int chineseScore;
private int englishScore;
private int mathScore;
public Student(String name, int chineseScore, int englishScore, int mathScore) {
this.name = name;
this.chineseScore = chineseScore;
this.englishScore = englishScore;
this.mathScore = mathScore;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getChineseScore() {
return chineseScore;
}
public void setChineseScore(int chineseScore) {
this.chineseScore = chineseScore;
}
public int getEnglishScore() {
return englishScore;
}
public void setEnglishScore(int englishScore) {
this.englishScore = englishScore;
}
public int getMathScore() {
return mathScore;
}
public void setMathScore(int mathScore) {
this.mathScore = mathScore;
}
6.this关键字的概述
A:this关键字特点
是当前类的对象引用。
简单的记,它就代表当前类的一个对象。谁调用这个方法,那么该方法的内部的this就代表谁
B.this的应用场景
例如上面程序中this.name=name;
案例演示:通过面向对象的思想,描述你自己的电脑类.并且使用这个类.
public class TestComputer {
public static void main(String[] args) {
Computer computer = new Computer();
String name = computer.name;
double size = computer.size;
double price = computer.price;
System.out.println("电脑的品牌是:"+computer.name);
System.out.println("电脑的价格是:"+computer.price);
System.out.println("电脑的尺寸是:"+computer.size);
computer.listenMusic();
computer.PlayGame();
computer.QiaoDaiMa();
}
}
class Computer {
String name="戴尔";
double size=15.6;
double price=9999.9;
public void listenMusic(){ System.out.println("电脑可以听音乐!"); }
public void PlayGame(){System.out.println("电脑可以打游戏!"); }
public void QiaoDaiMa(){ System.out.println("电脑可以敲代码!"); }
}