面向对象笔记

1-1

  第一步:编写类

             语法格式:[修饰符] class 类名{}

  第二步:编写属性

    (1)语法格式:[修饰符] 数据类型 属性名称 [=值]

                        []中的内容可有可无,属性名称也叫标识符,编写属性也叫成员变量
                        或实例(对象)变量

    (2)当变量(属性)没有赋值时,不同的数据类型默认值也不同

                         整数类型默认值:0

                         浮点类型:0.0

                         字符类型:\u0000

                         布尔类型:false

                         所有引用类型的默认值都为:null

   第三步:编写方法

    语法格式:

                     [修饰符] 返回类型 方法名称([参数列表]){方法}

                     方法必须编写在类中
                        
   第四步:编写测试类 
    
    也就是包含main方法的类(主类)

           (1)根据子类在父类中创建对象,语法格式:类名 引用名称 = new 类名 ();


1-2  成员变量和局部变量的区别

        (1)成员变量指的是这个类的变量,局部变量是类中方法体内中定义的变量

        (2)在同一个类中,成员变量和局员变量可以同名,但局部变量优先

        (3)成员变量有默认值,也叫实例变量,局部变量没有默认值,所有局部变量在使用前必须
             先声明


1-3  this.xx

        (1)当局部变量和成员变量同名时,访问成员变量必须添加this.(成员变量)

        (2)this用法

   例如: 1、 

public class Test{

                int i;

        public void setI(int i){
                      
                this.i = i;

                }
        }

setI()方法的参数名为i,Test类的属性也为i,所以在setI()方法中必须用this指定具体是哪一个i。

this.i 就代表了当前类(Test)的属性i。这样才可以通过setI()方法为属性初始化。

    

2、

public class Cat {

        String name;

        int paw;

    public Cat(String name,int paw){

        this.name = name;

        this.paw = paw;

    }
    
    public Cat() {

        this("小喵",4);

    }
    
    public static void main(String[] args) {

        Cat cat = new Cat(); 
              
        System.out.println(cat.name+cat.paw);

    } 

    

(3)this调用其它构造方法

     1、只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用。 


    2、不能通过this递归调用构造方法,即不能在一个构造方法中通过this直接或间接调用                该构造方法本身。

    3、通过this调用其他构造方法必须放在构造方法的第一行中执行。

               由于super调用父类的构造函数也必须放在构造方法的第一行中执行,
               因此,通过this和super调用构造方法不能同时出现一个构造方法中。
               也不能在一个构造方法中多次调用不同的构造方法。 

    (4)public void x(int a){//a是形参,在方法内属于局部变量
             this.a=a;//将右边局部变量赋值给左边成员变量a

    (5)this.xx即可以访问当前类中的属性和方法,也可以访问父类中的实例变量以及方法

    (6)this访问本类无参构造方法:this();且只能编写在构造方法中第一条语句
                                                          

1-4  构造方法

         构造方法:构造方法名称必须和类名一致,构造方法内必须没有返回类型

         语法格式:public 方法名称(参数列表){//参数列表中参数可有可无

                                                                        }
         构造方法执行:当创建对象时,则自动会匹配相应的构造方法

         (1)隐式构造方法:在创建对象时,系统自动提供一个默认无参构造方法

         (2)显示构造方法:在手动编写构造方法时,系统会覆盖原有的隐式构造方法

    构造方法重载:在同一个类中,定义多个同名且无返回类型方法时,参数列表不同(个数不同,
                  类型不同、顺序不同)//

                  错误实例:参数列表  1、String name   2、String brand
 
                  个数相同,类型相同,顺序相同。编译报错

1-5  空指针

    空指针异常:编译不报错,运行报错,java.NullPointerException,

    原因:引用名称值为Null时,无对象自然不能访问对象中的属性

    解决办法:在访问某个对象中的属性或方法之前必须保证该引用名称中
        存放的时对象的地址(引用)

1-6  static 

    (1)static 属性名称// 静态属性,也叫作类的变量

    statuc 方法名称//静态方法,也叫作类的方法

    (2)在JVM虚拟机内,属性被static修饰过,这就表示属性在共享区域,不再开辟第二块空间,并且所有对象都可以访问(包括引用名称的值为null时,也可以访问),其生命周期与类同在。
      
    (3)静态方法只能访问静态属性、静态方法

        //不论是静态方法、静态方法,只要被static 修饰过,在JVM虚拟机内里,
             类与static 同步执行,永远优先于对象、实例变量的存在。

    (4)静态代码块:完成对静态属性的赋值;静态代码块在类第一次被载入时则执行

    static{     属性赋值  或    输出语句         }

     //在main方法中输出语句输出相同的代码俩次,静态代码块只会执行一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值