1:面向对象:
1:三大特征:封装,继承,多态
2:在java中任何处理的数据都可以看做对象:'a' "hello" 123 图片 文件 视频 音乐 按钮
3:我们想去实现一个功能的时候,不要想着如果自己从0开始写,而要想哪个对象能够给我们实现
这个功能(数组的排序sort,文件的复制copyFIle,字符串的反转:reverse())
2:面向对象的步骤:
1:设计类
a:JDK提供的类:Scanner,String,Random
b:自定义类:Student,Person
c:第三方提供的类:comments-IO ,DButils
2:通过类来创建对象
a:有名对象
Person p = new Person();
b:匿名对象
new Person();
3:通过对象来访问方法
a:普通方法
b:静态方法:static
3:this关键字
//方式1:
this本质:哪个对象来调用this所在的方法,this就指向哪个对象
public void setName(String name) {
this.name = name;
}
//方式2:
public Student(String name, int age) {
this.name = name;
this.age = age;
}
//-------------------
public Student(String name){
this.name = name;
}
public Student(String name, int age) {
this(name); //这个在调用上边的构造
this.age = age;
}
//方式3:
public void show(){
System.out.println(name + "\t" + age);
}
public void print(){
this.show();
}
4:匿名对象
对象的名字:指向该对象的引用变量
Student stu = new Student(); //stu就是对象的名字
//匿名对象:对象没有引用变量指向该对象
new Student(); //匿名对象只能被使用一次,因为使用之后,这片内存再也找不到了
4.1 匿名对象的作用
1:临时调用一个方法,简化书写
Student stu = new Student();
stu.study();
//--------------------
new Student().study();
2:类作为方法的参数
3:类作为方法的返回类型
2:类与类之间的关系
2.1 组合关系
一个类中有些成员变量是另一个类,这两个类之间就是组合关系,例如:
每个司机都有一辆车
//1:设计类
class Car
{
private String brand; //品牌
private String color; //颜色
private double price; //颜色
}
class Driverx
{
private String name;
private int age;
//每个司机都有一辆车
private Car car;
}
2.2 继承关系
继承关系描述的是类与类之间的所属关系:谁是谁的一种,或者谁包含谁
人类 动物类 水果类 //父类,超类,基类
学生类 猫类 香蕉类 //子类
2.3 继承的例子
class Person //父类
{
private String name;
public void eat(){
System.out.println("人吃饭")
}
}
//学生类继承人类
class Student extends Person
{
}
继承的优点
1:继承让类与类之间产生关系
2:继承可以优化代码的设计结构
3:可以提高程序的扩展性
//--------
class C
{
public void func1(){}
}
class A extends C
{
public void func2(){}
}
class B extends C
{
public void func3(){}
}
//-----------
class ShengWu
{
public void eat(){}
public void sleep(){}
}
class Person extends ShengWu
{
public void work(){}
}
class Cat extends ShengWu
{
public void catchMouse(){}
}
2.4继承的其他特点
1:Java支持单继承(一个类只能有一个父类)
class Fu
{
public void eat(){
//左手拿筷子
}
}
class Mu
{
public void eat(){
//右手拿筷子
}
}
class Zi extends Fu,Mu
{
}
java保留了多继承的机制,用另外一种方式来实现多继承(接口)
继承的缺点:
1:Java只支持单继承
2:继承使类之间的耦合性增强,不符合面向对象的设计思想(高内聚,低耦合)