Java初学(五)

      这一次博客拖了很久,这要是因为这学期最后的期末考试复习,暂停了博客的更新,现在到了暑假,便有了不少的空闲时间,之后会陆续地把欠下的博客补上。

      这次更新的内容有关于类和对象部分,以下是内容:

      对象:

            定义:在java语言中,对象又称为实例,是对现实世界中对象的模拟,现实中的对象存在于现实生活中,而java语言中的对象存在于计算机内存中。

           属性与方法:java中将现实对象中的信息称为属性(也叫做全局变量),将现实对象中的功能称为方法。

           创建与使用:

                 创建:   通过new关键字创建对象,创建对象又叫做实例化对象。  Student student = new Student();

                  使用:   使用“.”运算符访问对象的属性和方法。  

           方法的定义:   访问控制符 [修饰符] 返回值类型 方法名([参数]){   //方法体  }

                         注:1.方法中的访问控制符用于限制方法在其他类中的使用范围, 有public、protected、default、private 四种,可用于修饰成员变量、构造方法、普通方法。

                               2.修饰符,常用有final、static、synchronized,static修饰方法、变量可以(1)类名直接调用;(2)创建对象调用,且修饰的成员变量在类加载时初始化值;  非static修饰的类名和方法只能使用类创建的对象调用,且在创建对象时初始化值。final修饰的类、变量、方法 (1)类不能被继承(2)方法不能被重写(3)变量是常量,不能二次赋值 

                                3.若方法无返回值,返回值类型为void,不必用return,若有返回值必须用return,且要保证每种情况下都有return,返回值类型必须是返回数据所属的数据类型或者精度更高的数据类型(针对于数值类型的数据)。如果方法返回引用数据类型的数据,则返回值类型必须是返回数据所属的数据类型或者其父类。

                                4.方法名:遵循标识符命名规则;首字母必须小写,如果由多个单词组成,从第二个单词开始首字母必须大写;方法名一般由一个动词或者动名词构成。

                                5.参数:方法可以有多个参数,参数之间用“,”隔开,参数在整个方法内有效,参数前面的数据类型用于限制调用方法是所传具体数据的数据类型。特殊参数:动态参数,其实质为数组,必须位于参数列表的最后,且每个方法只能有一个动态参数。

                                6.方法重载:同一类中有多个方法名相同但参数列表不同的方法,这种方法称为方法重载。参数列表不同包括:1.参数个数不同;2.参数对应的类型不同;再调用方法是根据调用方法时传入的参数的数据类型和个数来决定调用哪个方法。

        类:

            定义:在汉语中类是很多相似事物的集合。而java语言吧一组对象中相同的属性和方法抽象到了一个java源文件就形成了类。

            定义步骤: 1.定义类名(1.符合标示符命名规范

                                                  2.类名必须使用英文字母,首字母大写

                                                  3. 由多个单词组成时,每个单词首字母大写)

                                例: public class  类名 {

                                                //属性

                                                类型 属性名;

                                                String id;

                                                //方法

                                                方法1;

                                                方法2;

                                                public void readBook(){

                                                        System.out.print("******");

                                                }

                                        }


      类与对象的关系:

                1.类是创建对象的模板,确定对象将会拥有的属性和方法。

                2.类是对象的抽象化;对象是类的具体化。

                3.类是一种数据类型,是对象的数据类型(不同于int等基本类型:类具有方法)。

      面向对象与面向过程:

                面向对象:即让对象称为类与类之间的“通信”桥梁,通过对象使类之间形成有机的整体。(面向对象编程语言以对象为中心,以消息为驱动,即程序=对象+消息[这里的消息是指方法的调用,java向方法传递参数来发送信息,并从返回值中获取方法的信息])

                面向过程:以过程为中心,以算法为驱动,程序=算法+数据

       代码块: 

                静态代码块:只在类加载时执行一次

                非静态代码块:每次创建对象都执行一次

      变量:

        

                      成员变量:直接在类中声明的变量,又称全局变量,如果未对成员变量设置初始值,则系统会根据成员变量的类型自动分配初始值:int分配初始值0、boolean分配初始值false,而自定义类型则分配初始值null。

                       成员变量在定义以后,作用域时整个类,不会受定义位置的影响

                       局部变量:方法中的参数、定义的变量和代码块中定义的变量统称为局部变量,其作用域从定义位置开始到其所在语句块结束, 如果局部变量的名字与全局变量的名字相同,则全局变量被隐藏,即这个全局变量在同名局部变量所在方法内暂时失效。如果在局部变量的作用域范围内访问该成员变量,则必须使用关键字this来引用成员变量。

                    注:1.局部变量使用前必须显式初始化,局部变量没有默认值

                           2.声明局部变量时,数据类型前除final外不允许有其他关键字,即其定义格式为: [final] 数据类型 变量名 = 初始值;

     关键字static:

            方法:

                1.static修饰的方法称为类方法(又称静态方法):此种方法被所有该类的对象共享; JVM加载类时为其分配入口地址;可以由所在类创建的对象或类名来调用,推荐使用类名直接调用;

                2.没有static修饰的方法称为实例方法(又称非静态方法):此种方法对所有该类的对象都是独立的; JVM执行创建对象代码时为其分配入口地址并且只分配一次;只能使用对象来调用;

           代码块:

                1.static修饰的代码块称为静态代码块:JVM加载类时该类型代码块执行并且只执行一次;

                2.没有static修饰的代码块称为非静态代码块:JVM执行创建对象代码时执行并且每创建一个对象执行一次;

           注:

                1.静态方法不能直接调用非静态方法,可以间接通过创建该方法(指非静态方法)所在类的对象来调用;非静态方法可以直接调用静态方法;

                2.静态代码块不能直接调用非静态方法;可以间接通过创建该方法(指非静态方法)所在类的对象来调用;静态代码块可以直接调用静态方法;

                3.静态方法或者静态代码块不能直接使用非静态成员变量,可以间接通过创建该成员变量的对象来调用;静态方法或者静态代码块只能直接使用静态变量;


       构造方法:

                构造方法是一种特殊的方法,负责初始化类中的实例变量,,这种方法必须满足以下语法规则:构造方法必须与类名相同;不包含返回值类型描述部分,不能有static和final关键字修饰。

                调用:可以使用new关键字调用构造方法,即构造方法在创建对象(也称对象实例化)时被调用

                显式构造方法:    1.创建类时,如果没有显式定义构造方法,则该类会存在一个默认的无参构造方法;
                                           2.可以在类中声明一个或多个有参构造方法,但每个构造方法在参数个数或参数数据类型上要有所差别

                                        3. 如果类中存在显式构造方法,则默认的无参构造方法将不复存在,除非显式定义无参构造方法         

               类中构造方法之间的调用: 类中可以有多个构造方法,构造方法之间可以通过this实现调用,但必须将调用构造函数代码写在有效代码的第一行,且构造方法不能在普通方法中调用。

       关键字this:

                this代表对当前对象的一个引用,用于调用属性、方法、及本类中的构造方法,在实例方法中通常被省略,除非实例方法中包含与成员变量同名的局部变量时,访问成员变量需要使用this。

        对象的初始化过程:

                    用new创建并初始化对象步骤:

                                1.给对象的实例变量(非“常量”)分配内存空间,默认初始化成员变量;
                                2.成员变量声明时的初始化;
                                3.初始化块初始化(又称为构造代码块或非静态代码块);
                                4.构造方法初始化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值