java基础入门初学者须知

    作者:课课家教育更新于: 2016-02-29 20:03:05

    大神带你学编程,欢迎选课

      世间万物皆对象,对象是能接触到的实体。类是一组有相同属性和方法的对象的集合,或者说它们的特征提取,类是一种抽象的概念。类由属性和方法组成,属性是它的各种静态的特征,方法是它能干啥。《易》有云,“物以类聚,人以群分”。

      打个比喻,有一群人都在追一个很可爱的姑娘。这群人可以抽象出一个类,他们有相同的属性,比如都喜欢这姑娘,都是男孩子。他们有一些相同的方法,什么送花儿呀,请吃饭呀,请看电影呀,陪姑娘聊天呀。所以呀,他们是一个类。而单独的一个人就是一个对象,这个对象一定具有这个类里的属性,也一定可以干这个类中的方法【人家干不干是另一说啊】,当然,也可以干其他各种各样不包含在类里的事。所以呀,姑娘选人不是看类的方法和属性,反正都是一样的,人看的是你此外还能干啥,也看的是你现有方法中,你咋个顺序干呢~【吐槽而已,认真你就输了】

    java基础入门初学者须知_Java基础_Java语言_课课家

      类和对象毕竟只是一种静态的描述和表示,而程序是会运作起来的世界。人生有那么多种可能,而你却只能选择一条路。

      2.定义类

      //类名要求首字母大写

      public class 类名

      {

      //属性(成员变量)

      类型 类型名;

      ...

      //方法

      方法;

      ...

      }

      3.创建对象

      类名 对象名=new 类名();

      4.使用对象

      对象名.属性

      对象名.方法()

      //float变量赋值需要加f,否则默认浮点数为double,如 float x; x = 0.5f;

      5.成员变量和局部变量

      成员变量是类中定义的,局部变量是类的方法中定义的。

      作用域不同,局部变量只在方法内可用。

      初始值得区别【成员变量自动赋初始值,局部变量需初始化】

      6.构造方法

      用于创建对象和初始化对象的值。其名称与类名同名,无返回值。

      使用:new + 构造方法

      【之前所用的创建对象相当于java自动创建了一个无参的构造方法,直接使用该无参的构造方法,若代码段中有构造方法,无论是有参还是无参,java都不会自动创建啦】

      定义:

      public 构造方法名()  //有参无参均可

      {

      //初始化

      }

      7.static

      直接在下述的定义前面加上static即定义为静态了。

      a.静态变量

      该类所有对象共享,属于整个类所有。可直接用类名访问,也可用对象名访问。【类名.属性】

      第一次使用时就有了该变量,后面再创建该类的对象还是只有第一个的。

      b.静态方法

      静态方法可以直接调用静态变量,但不可直接调用非静态变量,若要调用非静态变量,可以创建类然后调用。

      静态方法可以直接掉用静态方法,但不可直接调用非静态方法,若要调用非静态方法,可以创建类然后调用。

      普通方法可以直接调用静态和非静态的变量。

      【小结:非静态均可直接调用,静态只能直接调用静态。谁让他们都是些高冷的小傲娇!其他人就不理他们!】

      c.静态初始化块

      初始化块可以直接在类中通过大括号添加,创建类时就直接依次执行这些初始化块了。

      静态初始化只在第一次创建该类对象时执行,只执行一次,且只能初始化静态变量。【傲娇小天团~】

      类的三大特性:封装、继承、多态

      二.封装:

      1.定义和实现

      定义:要求只通过类的方法对该类进行各种操作,把类的各种属性隐藏起来。就是“封装”的字面意思。

      实现:将属性修改为private,用getter/setter方法进行属性的修改。【ecliPSe可自动生成,Source菜单】

      一般getter方法名取为get+属性名首字母大写。

      一般setter方法名取为set+属性名首字母大写。

      2.包:

      定义:用于管理java文件,解决类的同名问题。

      package 包名;    //使用,包名间使用.隔开,全小写,用于区分层次,类似于文件路径

      //系统中的类也常用该命名方式:java.(功能).(类)

      使用:

      import 包名;    //.*通配符,包括该目录下的所有

      3.访问修饰符

      本类同包子类其他

      privateo

      默认oo

      protectedooo

      publicoooo

      4.this关键字

      表示当前对象

      使用:  this.属性

      this.方法

      5.内部类

      定义在一个类里面的类。

      使用:

      Outter o = new Outter();

      Inner i = o.new Inner();  //内部类名 对象名 = 外部对象名.new 内部类名()

      a.成员内部类

      定义:内部类做为外部类的一个成员存在。

      内部类访问外部类时需要用this关键字。如: Outter.this.h  //外部类名.this.属性

      b.静态内部类

      定义:对内部类加上static修饰符。

      对外部类的非静态成员的访问:new 外部类().成员

      外部类静态成员的访问:  类名.成员【同名】

      成员【不同名】

      创建时不需创建外部类,可直接创建内部类。

      c.方法内部类

      定义:定义在外部类的方法中,只能在该方法中使用。故不能使用访问修饰符和static修饰符。

      三.继承

      1.基本定义

      字面意思,一个类(子类)继承了另一个类(父类)的属性和方法。【private修饰的属性和方法不可继承】【eclipse创建子类可直接选择继承父类,superclass】

      class 子类 extends 父类

      2.方法的重写

      子类重写父类中有的方法。要求返回值、方法名、参数个数和类型均相同。使用时则优先使用子类的方法。

      可以修改访问修饰符,重写的访问修饰符不能比原访问修饰严格。

      3.final关键字

      修饰类。该类不允许被继承

      修饰方法。该方法不允许被重写(覆盖).

      修饰属性、变量。变为常量。要求在定义时或构造方法中初始化,保证有且仅有一次的初始化。

      4.super关键字

      子类中使用,代表父类对象。

      用法:  super.属性    super.方法

      子类构造必须调用父类构造方法,系统隐式调用父类的无参构造方法,显式书写必须写在子类构造方法的第一行。

      5.Object类

      该类是所有类的父类,根。

      常用方法:

      a.toString()

      该方法直接调用返回对象的哈希code码,即地址。常重写该方法表示对象的属性。【eclipse可自动生成,Source菜单】

      b.equals()

      字面意思,比较是否相同。而现实中我们所谓的相同有两种。一种是世界上独一无二的同一个,比如你就是独一无二的,你的名字、身份证号反正都是指的你,都是相同的。一种是属性相同,比如说你们俩的校服一样。Object类中的equals方法比较的是第一种相同,即对象的使用是否指向同一块内存地址。常通过重写比较第二种相同。【eclipse可自动生成,Source菜单】该方法包含一个参数为对象的引用;返回类型为bool。此外,equals()重写中用到的getClass()方法得到类对象。区分类对象和类的对象,前者表示你有哪些种类的属性,后者表示该属性你具体值是多少。

      四.多态

      1.

      关于引用,私以为,引用就是给你起个名字或者说拿个啥东西指代你,比如说你的小名啊、身份证号啊、外号啊,这都是引用,都是指你。但是引用不是你本身,只是指你而已,可以直接使用。类似指针。d

      关于多态,就是对象的多种状态,有两种多态。一种是引用多态,一种是方法多态。

      引用多态,是说父类的引用可以指向本类和子类的多态,但子类不能指向父类。说白了,你爸能给你起名字,你不能给你爸起名字。

      父类名 引用名 = new 父类名或子类名();

      方法多态,是说通过上面的引用多态创建了对象,如果是本类对象,调用的方法就是本类的方法;如果是子类的对象,调用的方法就是重写或者继承的方法;如果是子类对象独有的方法,那就不能使用。说白了,你爸给你起了名字,但你还是你自己,这个引用是你爸通过自己能干啥知道的你能干啥【因为继承】,但你很可能有些事儿有些本事你爸不造吧~那他就当然没法叫你干这种事儿了喽~

      2.类型转换

      对象间的类型转换类似一般的属性间的类型转换,父类为上,子类为下,向上可自动转换,向下强制转换,同级不可转换。用instanceof关键字判断该引用是否可以转换为该类型。

      引用名 instanceof 类型名;//返回bool值,true为可以转换,false为不可转换

      3.抽象类

      约束所需的方法,不要求具体实现。需加上abstract关键字,可修饰类和方法。包含抽象方法的一定是抽象类,抽象类中可以有普通方法。

      通过子类的继承,方法的重写,实现具体的方法。

      其中abstract必须在最前面,eclipse可自动添加。

      4.接口

      感觉就是一种需求,用于继承和实现,所以必须是public。类似于类,定义不用class,用interface。其中属性一定是常量,方法一定是抽象方法,即全局常量和公共抽象方法。一个类可以实现多个接口,用implements,定义时写在继承的后面。用接口的引用直接new一个接口,使用匿名内部类可直接实现该接口的方法,并通过引用调用。接口名取名前一般加上I表示是接口(interface)

课课家教育

未登录

1