Java面向对象

1、面向对象和面向过程

简单来说,面向过程就是让你自己做一个每一步,面向对象就是使用有相应功能的工具来完成。

例如:按特定格式打印一个数组

面向过程:

int[] array = {10,20,30,40,50};
        //打印格式为:[10,20,30,40,50]
        System.out.print("[");
        for (int i = 0; i < array.length; i++) {
            if(i == array.length - 1){//最后一个数
                System.out.println(array[i] + "]");
            }
            else
            {//不是最后一个数
                System.out.print(array[i] + ",");
            }
        }

面向对象:

System.out.println(Arrays.toString(array));

备注:IDEA会自动导入Arrays类

这两者结果没有区别,主要区别是编程的思想。在这里,帮我们打印数组的Arrays类就被称为对象

面向对象的三个特征:

封装性

继承性

多态性

2、类和对象

什么是类:类是一组相关属性和行为的集合,可以看成是一类事物的模板

属性就是该事物的状态信息,行为是该事物能做什么

什么是对象:对象是类的具体化实例,即类是对象的模板,对象是类的实体

3、类的定义

由属性和行为组成,以下为例子:

学生类示范 定义一个学生类,有姓名和年龄两个属性,吃法睡觉学习三个行为。

对应到java类中:

成员变量(属性):

String name;

int age;

成员方法(行为):成员方法没有static关键字

public void eat(){}
public void sleep(){}
public void study(){}

实际示范:

public class student {
    //成员变量
    //成员变量直接定义在类中,在方法外
    String name;
    int age;
    //成员方法
    //成员方法没有static关键字
    public void eat(){
        System.out.println("吃饭");
    }
    public void sleep(){
        System.out.println("睡觉");
    }
    public void study(){
        System.out.println("学习");
    }
}

4、对象的创建及其使用

通常情况,一个类不能直接使用,要创建一个对象才能使用

创建步骤:

导包,指出需要使用的类在什么位置,同一个包下可以不写导包;

创建,格式:类名 对象名 = new 类名();

使用,使用成员变量:对象名.成员变量,使用成员方法:对象名.成员方法名(参数)

public class Demo4 {
    public static void main(String[] args) {
        //创建对象
        student stu = new student();
        //打印成员变量
        System.out.println(stu.name);
        //使用成员方法
        stu.eat();
        //重新赋值成员变量
        stu.name = "Alan";
        System.out.println(stu.name);
    }
}

}

5、对象可以当做参数传递给方法

public static void method(Phone parse){}

这个方法的参数是一个Phone类的对象

同样的,对象也可以当返回值

6、封装性

在java当中的体现有两点:

方法就是一种封装;关键字private也是一种封装

封装就是将一些细节信息隐藏,对外界不可见

7、private关键字

private关键字意为私有化,可以通过该关键字将需要保护的成员变量进行修饰。

private int age;

使用该关键字后,在本类当中仍然可以随意访问,但超出本类范围之外就不能直接访问了,如果要在类外对该成员变量赋值,需要通过类内的get/set方法。注意:方法名必须叫get xxx或set xxx

public void setAge(int num){
	age = num;
}//用来修改age,无返回值,有参数
public int getAge(){
    return age;
}//用来调用age,有返回值,无参数
可以在这两个方法内通过代码限制age的值。提高代码安全性

注意,布尔型的get方法名字应为isXXX,例如:

public boolean isMale(){
        return male;
        //布尔型的get方法名字是is
    }

8、this关键字

当方法的局部变量和类的成员变量重名时,根据就近原则会优先使用局部变量。

如果需要访问本类当中的成员变量,需使用this关键字(方法内)

this.成员变量名

 通过谁调用的方法,谁就是this

9、构造方法

专门用来创建对象的方法,当我们用关键字new创建对象时,new后面的语句就是在使用构造方法

public 类名(参数类型 参数名称){ 方法体 }

注意:

构造方法的名称与类名必须完全一样

构造方法不要写返回值类型

构造方法不能return一个具体的返回值

如果没写构造方法,编译器会自动生成,没有参数,方法体什么都不做

构造方法也可以重载

构造方法的主要作用是,方便在创建对象是设置成员变量

10、定义一个标准的类

标准的类包含以下四部分

所有成员变量都使用private进行私有化

每一个成员变量都有一堆get/set方法

编写一个无参构造方法

编写一个全参构造方法

public class student { private String name; private int age;

public student() {
}
​
public student(String name, int age) {
    this.name = name;
    this.age = age;
}
​
public String getName() {
    return name;
}
​
public void setName(String name) {
    this.name = name;
}
​
public int getAge() {
    return age;
}
​
public void setAge(int age) {
    this.age = age;

以上是一个标准类

备注:get与set,无参构造与全参构造方法都可以通过快捷方式生成,快捷键alt+insert

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值