类和对象

一、面向对象概述
类和对象:
类是对象的载体,它封装了对象的属性和行为的载体,定义了对象所具有的功能。
而对象则是类抽象出来的一个实例。

封装:
将对象的属性和行为封装起来,其载体就是类;类通常对客户隐藏其实现细节。
采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易的直接操作此数据结构,只能执行类允许公开的数据。这就避免了外部操作对内部数据的影响,提高了程序的可维护性。

继承:
利用特定对象之间的共有属性和行为,把已有对象通过继承就能使用它的一些属性和行为,能够减少代码的重复编写;继承该类的同时还能实现自己独有的属性和行为。

多态:
只提供抽象的方法,不提供具体的实现步骤,方法的具体实现方式交给子类去完成;多态的实现依赖于抽象类和接口(抽象类不能实例化对象)。(接口:由抽象方法组成的集合。)

抽象类不能实例化对象。


二、类

类:封装对象的属性和行为的载体;对象的行为以方法来定义,对象的属性以成员变量来定义。
成员变量:普通的变量,可以设置初始值,也可以不设置初始值,如果没有设置初始值,则会有默认值。
成员方法
权限修饰符
局部变量:局部变量在使用时必须进行赋值或初始化,否则会出现编译错误。
    public int getName() {
        int i = 0;
        //int i;    错误的,没有初始值
        return i;
    }


局部变量的有效范围是从该变量的声明开始到该变量的结束为止。
生命周期:方式被执行时创建,执行结束销毁。

this关键字:在java中使用this关键字来代表本类对象的引用,this关键字被隐式的用于引用对象的成员变量和方法。
public class classTest {
    int i;
    public int getName(int i) {
        
        return this.i=i;   
//this.i代表的是成员变量中的int i;;i表示的是参数中的(int i)
    }
}

return this;   
//this可以作为方法的返回值使用,代表的是本类的一个对象


三、类的构造方法
1. 构造方法没有返回值,并且不需要使用void关键字进行修饰
2. 构造方法的名称要与本类类名相同
对象的创建就是通过构造方法完成,每当实例化一个对象时,类都会自动调用构造方法。
public className(){
    ...
//构造方法体
}

在构造方法中可以为成员变量赋值,这样每当实例化一个对象时,相应的成员变量也将被初始化。
如果没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。
在无参的构造方法中可以使用this关键字调用有参的构造方法;但是只有在无参构造方法的第一句使用this调用有参构造方法。


四、静态变量、常量和方法
static关键字:被声明为static的变量、常量和方法被称为静态成员。静态成员属于类所有,被放在类的共享数据区域,区别于个别对象,可以在本类或其他类中使用 ClassName.静态类成员  直接调用。
被修饰为static的常量是可以被改变的,当其他对象使用该值时,拿到的是更改之后的最新值。
静态方法:
1. 在静态方法中不可以使用this关键字
2. 在静态方法中不可以直接调用非静态方法
3. 不能将方法体内的局部变量声明为static

如果在执行类时,希望先执行类的初始化动作,可以使用static定义一个静态区域。例如:
public class example{
    static{
        //some
    }
}


五、类的主方法
主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,java编译器通过主方法来执行程序。
注意:主方法是静态的,所以要在主方法中直接调用其他方法,也必须是静态的。


六、对象
对象是由类抽象出来的,所有的问题都通过对象来处理,对象可以操作类的属性和方法解决相应的问题。
对象的创建:ClassName a = new ClassName();    //对象的创建是通过调用构造方法;如果构造方法有参数,需要加上参数

对象的比较:
==:比较的是对象的内存地址,即是否是同一个对象
equals:比较的是对象所指向的内容是否相等

对象的销毁:
1. java自带的垃圾回收机制能够自动回收以下两种情况下的对象:
A. 对象的引用超过其作用范围
{
    ClassName c = new ClassName ();
}
......

B. 将对象赋值为null
{
    ClassName c = new ClassName ();
    c=null;
}

2. 以上垃圾回收机制只能回收由new操作符创建的对象,如果不是通过new操作符创建的对象,这个对象可能不会被垃圾回收机制所识别,所以java中还提供了finalize()方法...
3. System.gc()方法,强制启动垃圾回收器
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值