Java基础之面向对象(一)

一、了解面向对象

      面向对象:一种基于面向过程的新的编程思想,顾名思义该思想是站在对象的角度思考问题,我们把多个功能合理的放到不同对象里,强调的是具备某些功能的对象。

三大特征:

          封装(Encapsulation);封装是指将对象的实现细节隐藏起来,然后通过公共的方法来向外暴露该对象的功能。Ø

继承(Inheritance);继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类是一种特殊的父类,能直接或间接获得父类里的成员。

         多态(Polymorphism);多态是可以直接把子类对象赋给父类变量,但是运行时依然表现出子类的行为特征,这意味着同一类型的对象在运行时可能表现出不同的行为特征。

         类:类是对象的类型/模板。创建一个对象,就是使用一个类作为构建该对象的基础。

            具有相同特性(数据元素)和相同行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。

           类具有特性,对象的状态,用成员变量来描述。

           类具有功能,对象的行为,用方法来描述。

           类和对象之间的关系:

                     类是对象的描述,类是对象的类型,类是对象的图纸模板.

                     对象是类,具体的一个个体.是根据类创建出来的.

            定义类的注意事项:

                        1:类名使用名词或者名词短语,使用驼峰表示法(后面的每个单词首字母大写).

                          比如:Employee,StudentInfo,

                       2:类名首字母大写,使用标识符.

                       3:如果类使用了public修饰,则当前类所在的文件名称也必须为该类名.

------------------------------------------------------------------------------------------------------------

           在面向对象的课程中:

                        描述对象的类,不需要定义main方法的.

                       测试类才应该具有主方法,测试类用于创建对象,操作对象.

                         一般的,我们让测试类名和文件名相同.



                对象的基本操作:

                            1):如何根据一个类创建对象,此时得使用关键字new .

                                       类名    变量= new类名();

                                      new关键字:1):在堆内存中开辟一块空间,2):创建了一个对象.

                                          每次使用new关键字,都表示在堆中新开辟一块内存空间.

                        2):匿名对象,没有名称的一个对象,因为没有名称,匿名对象就只能使用一次:

                                     new类名();如, new  Servant();

                                  一般而言,我们不会使用匿名对象,我们会把创建的对象赋值给一个变量,此时该对象就不是匿名对象了,该变量名就好比是对象的名称.

                           3):打印对象的时候,默认打印出的是对象的hashCode值。

                           4):使用对象调用对象的方法.

                            如果对象中的方法,没有使用static修饰符,就只能使用当前方法所在类的对象来调用,不能直接使用类名调用.例如:

                               Servant s1 = new  Servant();

                                s1.cooking();

                  6):使用对象来操作成员变量.

                          给对象的成员变量设置值:

                         给菲佣s1设置一个名字 如:s1.name = "张三";

                         获取对象的成员变量的值:

                        获取s1对象的姓名:String  n = s1.name;

                       定义一个Cat类,包含了name和age状态,以及sleep,eat行为.

                      创建三个Cat对象:  c1,c2,c3

                     分析内存



二、构造器

构造器的作用:

               构造器最重要的功能就是创建对象,分配内存空间,并完成对象的初始化操作。

                一旦创建对象就会调用与之对应的构造器,构造器的作用:可用于创建实例象和完成实例初始化时内存分配。


               构造器的特点:

              1.构造方法名称与类名相同:

             2.不用定义返回值类型:

                         因为返回值的类型肯定就是这个类型本身,也不能使用void.。

              3.不需要写return语句:

                     但实际效果是调用后把创建好的对象返回。

                即使我们没有手动提供构造器,编译器也会提供默认构造器,每一个类,至少有一个构造器.

                   如果我们手动提供了构造器,则编译器不载提供默认构造器.

三、static关键字修饰.

static修饰成员变量:该变量属于整个类,不属于某一个具体对象.

static修饰的方法:该方法属于整个类,不属于某一个具体的对象.

没有使用static修饰的成员变量/方法,就属于某一个对象.

使用static修饰的成员(变量,方法,内部类),称之为类的成员.

特点:

1):随着JVM的加载而加载.

当JVM把static成员所在的字节码加载进JVM的时候,static就已经存在于JVM中(方法区).

2):优先于对象存在.

对象是我们通过new关键字创建出来的,而静态成员,在加载进JVM就已经存在了.

3):被所有当前这个类的对象所共享.

4):调用静态成员,直接使用类名调用即可.

静态成员属于类型,而不属于某一个具体的对象.

即使我们使用对象.静态成员,其底层依然是类名.静态成员.

使用static修饰的字段不是存储在堆内存的,而是存储在独立于堆内存和栈内存的方法区内存中,可以被该类所有的对象所共享。

类成员:使用static修饰的成员变量,方法,内部类.

实例成员:没有使用static修饰的成员变量,方法,内部类.

在实际开发中,我们往往不会使用static去修饰成员变量和方法,使用static的几个地方:

1:静态代码块:

static{

初始化数据

}

2:定义全局的公共常量的时候使用.

public  static final  int  MAX_VALUE = 127;//表示一个常量值,不能改变,大家可以共用.

3:工具类中的方法,使用static修饰,目的:方便调用(使用最多的情况).

四、equals与==

equals:一般用在比较当前对象和指定对象比较,表示逻辑相等(比较值)。

==:一般是用来判断两个对象的引用内存地址是否相同(比较地址)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,524评论 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,616评论 0 11
  • Java基础笔记(一) 面向对象 [TOC] 1、定义类 其中的修饰符可以是public、final、abstra...
    小小少年Boy阅读 355评论 0 1
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,584评论 4 12
  • 风来疏竹,风过而竹不留声;雁渡寒潭,雁去而潭不留影。漫步庭前,闲看花开花落,皆宠辱不惊;仰视长天,淡望云卷云舒,亦...
    四十一画生阅读 139评论 0 1