黑马程序员_JAVA基础_1

------- android培训java培训、期待与您交流! ----------


一、JAVA中的名称规范

       包名:多单词组成时所有字母都小写

       类名接口名:多单词组成时,所有单词的首字母大写

       变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。

       常量名:所有字母都大写,多单词时每个单词用下划线连接。


二、变量类型

      float f = 2.3f  必须后面加f,告诉这是单精度


三、逻辑运算符

      &和&&的特点

      &:无论左边是true还是false. 右边都运算。

      &&:当左边为false时,右边不运算

      | :两边都参与运算

     ||:当左边为true。右边不运算。


四、位运算符

    《:其实就是乘以2的移动的位数次幂

    》:就是除以2的移动的位数次幂

     》:最高位补什么由原有数据的最高位值而定。

                如果最高位为0,右移后,用0补空位。

                如果最高位为1,右移后,用1补空位。

   >>>:无论最高位是什么,右移后,都用0补。

   一个数异或同一个数两次,结果还是那个数。


五、Ctrl + C 强制结束命令行运行

   无限循环的最简单表现形式 for(;;)

   栈的特点,数据使用完毕,会自动释放(局部变量都在栈内存中)


六、对象

   Person p = new Person("zhangsan",20)

  该句话都做了什么事情?

   1、因为new用到了Person.class.所以会先找到Person.class文件并加载到内存中。

   2、执行该类中的static代码块,如果有的话,给Person.class类进行初始化。

   3、在堆内存中开辟空间,分配内存地址。

   4、在堆内存中建立对象的特有属性。并进行默认初始化。

   5、对属性进行显示初始化

   6、对对象进行构造代码块初始化。

   7、对对象进行对应的构造函数初始化。

   8、将内存地址付给栈内存中的p变量

  

对象:

    子类的所有构造函数,默认都会访问父类中空参数的构造函数

    因为子类每一个构造函数内的第一行都有一句隐式super();

    当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。

    当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数,子类中至少会有一个构造函数会访问父类中的构造函数。

  

七、抽象类的特点:

1、抽象方法一定在抽象类中。

2、抽象方法和抽象类都必须被abstract关键字修饰

3、抽象类不可以用new创建对象,因为调用抽象方法没意义

4、抽象类中的抽象被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。


抽象类和一般类没有太大的不同

该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西

这些不确定的部分,也是该事物的功能,需要明确出来,但是无法定义主体。

通过抽象方法来表示


抽象类比一般类多了个抽象函数,就是在类中可以定义抽象方法,抽象类不可以实例化。

      

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。


八、接口:初期理解,可以认为是一个特殊的抽象类

     当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

Class 用于定义类

Interface 用于定义接口

 

接口定义时:格式特点

1、  接口中常见定义:常量,抽象方法

2、  接口中的成员都有固定修饰符

变量:public staticfinal

方法:public abstract

记住:接口中的成员都是public的

接口:是不呆以创建对象的,因为有抽象方法。

需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化,否则子类是一个抽象类。

 

接口可以被类多实现,接口互相可以多继承

 

接口的特点

1、  接口是对外暴露的规则

2、  接口是程序的功能扩展

3、  接口可以用来多实现

4、  类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。

5、  接口与接口之间可以有继承关系

 

九、多态:可以理解为事物存在的多种体现形态

     1、   多态的体现

             父类的引用指向了自己的子类对象

             父类的引用也可以接收自己的子类对象

    2、多态的前提

          必须是类与类之间有关系。要么继承,要么实现

            通常还有一个前提:存在覆盖

   3、多态的好处

          多态的出现大大的提高程序的扩展性

     4、多态的弊端

          提高了扩展性,但是只能使用父类的引用访问父类中的成员

    注意:千万不要出现这样的操作,就是将父类对象转成子类类型。

                我们能转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换。

                多态自始至终都是子类对象在做着变化

 十、内部类

     内部类的访问规则:

      1、内部类可以直接访问外部类中的成员,包括私有。

            之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式 外部类名.this

      2、外部类要访问内部类,必须建立内部类对象

     访问格式:

     1 当内部类定义在外部类的成员位置上,而且非私有,可以在外部其他类中,可以直接建立内部类对象

格式 

     外部类名.内部类名   变量名 = 外部类对象.内部类对象;

      Outer.Inner in = new Outer().new Inner();

    2 、当内部类在成员位置上,就可以被成员修饰符所修饰。

         比如 private: 将内部类在外部类中进行封装

          static: 内部类就具备static的特性

          当内部类被static修饰后,只能直接访问外部类中的static成员。出现了访问局限

          在外部其他类中,如何直接访问static内部类的非静态成员呢?

           new Outer.Inner().function();

          在外部其他类中,如何直接访问static内部类的静态成员呢?

           Outer.Inner.function();

注意:当内部类中定义了静态成员,该内部类必须是static的。

            当外部类中的静态方法访问内部类时,内部类也必须是static的。 


当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事务在使用外部事物的内容。


     3、匿名内部类:

              匿名内部类其实就是内部类的简写格式。

              定义匿名内部类的前提

                  内部类必须是继承一个类或者实现接口

              匿名内部类的格式: new  父类或者接口(){ 定义子类的内容 }

              其实匿名内部类就是一个匿名子类对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值