JAVA入门小小白学习中ing(面向对象(类和对象,java中定义类的格式,类的对象))

小猪学习

小小白慢慢学习中ing 第十天

努力努力


本日内容(面向对象初识)

1、生活中什么是面向对象

洗衣服,吃饭

面向过程:关注点是过程 ————站在一个执行者的角度去考虑事情,做事情

    //step1.找个盆

    //step2.收集要洗的衣服

    //step3.放水,放洗衣粉。。

    //step4:洗一洗

    //step5:晒一晒

面向对象:关注点是对象 ————站在指挥者的角度

    //step1:找个对象

    //step2:让他洗衣服

生活中的面向对象:找合适的人,做合适的事儿。。

生活中的面向过程:亲力亲为,按照流程步骤来,一步一步,吭哧吭哧。。。

代码中:

    Arrays类

        sort();-->排序

        binarySearch();-->搜索

    Scanner类

        sc.nextInt();

        sc.next();

        sc.nextDouble();

2、面向对象和面向过程

面向对象:(OOP)

    不是一种语言,而是一种编程思想。

面向对象程序设计:(Object Oriented Programming)

        Object:对象

        Oriented:方向,定向

        Programming:程序

面向过程:

        关注点在过程上(步骤)

        step1,step2,step3.。。。。

        总和分析,按照步骤实现即可。

面向对象:

        关注点在对象上,

        万事万物皆对象。

        A:分析当前的问题域中所涉及的对象。

        B:这些对象有什么样的特征和功能。

                外部特征:静态属性

                动作行为:动态属性

        C:对象和对象之间的关系。

                继承关系,聚合关系,关联关系。。。

                类的堆砌。

3、类和对象

类               |          对象

人类:                    Person钟南山院士,你,我,王二狗,李小花,袁隆平爷爷,马云爸爸。。

狗类:                    幻影,忠犬八公,二哈,啸天

猫类:                    嘟嘟,卡卡,你家的猫,姥姥家的白猫

汽车类:                 我的黑色的长城车,58台红旗车,撞我的那台车。。

笔记本电脑类:      我现在用的这个电脑15寸的pro,王二狗的华硕,你媳妇的联想

手机类:                 我的华为Mate30,你的小米mix2s,你媳妇用诺基亚n95

类:其实指的就是类别。对同一类事物的统称。对这类事物进行描述,--->创建class

        就是一个抽象的概念。

对象:

        类中的一个具体的实例,客观存在的,能用。个体。

如何定义一个类?

        要有能够描述这一类别的外部特征——我们叫做属性(静态属性)

变量就可以。(名词)

        要有能够描述这一类别的行为功能——我们叫做方法(动态属性)

方法就可以。(动词)

4、Java中定义类的格式

/*

class ClassName{//类名首字母大写

//属性描述:外部特征

//行为描述:能够干啥

}

*/

要求:

   1、CLassName要求符合驼峰命名法,首字母大写,见名知意。

   2、属性描述:外部特征,用于描述这个类别的一些特征,而这些特征通过一个"词"来描述清楚,比如姓名,年龄。使用变量来表示。——【成员变量】Field,词义"字段"

   3、行为描述:能够干啥,用于描述这个类别的一些行为功能,而这些行为功能,是一个动作行为,比如吃饭,睡觉。使用方法来表示。——【成员方法】Method,词义"方法"

  不要加static。

方法:就是一段具有独立功能的代码。

4.1 step1声明类

public class Person{//类的名字

}

4.2 step2声明类中的【成员变量】

public class Person {

        //step2:成员变量

        String name;//使用String类型的变量name,表示人类中的姓名

        int age;//使用int类型的变量age,表示人类中的年龄

        char sex;//使用char类型的变量sex,表示人类中的性别

}

4.3 step3声明类中的【成员方法】

public class Person {

        //step2:成员变量

        String name;//使用String类型的变量name,表示人类中的姓名

        int age;//使用int类型的变量age,表示人类中的年龄

        char sex;//使用char类型的变量sex,表示人类中的性别

        //step3:成员方法

        public void eat(){

                System.out.println("吃饭啦。。");

        }

        public void sleep(){

                System.out.println("睡觉啦。。");

        }

        public void daDouDou(){

                System.out.println("打豆豆。。。");

        }

}

​5、类的对象

5.1 创建类的对象

创建对象,也叫做类的实例化。对象,也叫类的实例。

/*

new关键字

new,词义:新的,新建

new 关键字,专门用于新建对象。

*/

Scanner sc = new Scanner();//Scanner也是个类,Person也是个类。

int[] arr = new int[5];

语法结构:

        /*

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

        */

step1:创建类

step2:根据类,实例化对象

5.2通过对象访问属性

/*

int[] arr = new int[5];

获取数组的长度:

arr.length

arr的长度

*/

对象访问属性的语法:就是一个.

//给对象的属性,进行赋值

p1.name = "王二狗";//给p1这个对象的name属性进行赋值

p1.age = 18;

p1.sex = '男';

//获取对象的属性值

System.out.println("姓名:"+p1.name);

System.out.println("年龄:"+p1.age);

System.out.println("性别:"+p1.sex);

5.3通过对象访问方法

/*

Scanner sc = new Scanner();

sc.nextInt();

*/

Scanner,就是一个class,一个类

sc,是根据Scanner创建出来的一个对象

对象调用类中的方法,语法,也是.

对象.方法名();

        p1.eat();

        p1.sleep();

        p1.daDouDou();

方法:public void test1();

对象.test1();

6、 内存分析

实例代码:

package com.qf.demo01;

public class Test1Person {

        public static void main(String[] args) {

                //step1:创建Person类的对象

                //语法:类名 对象名 = new 类名();

                Person p1 = new Person();

                System.out.println(p1);//打印p1的值,p1是引用类型,打印都是p1指向的对象的地址。

                System.out.println(p1.name);

                System.out.println(p1.age);

                System.out.println(p1.sex);

                /*

                * com.qf.demo01.Person@15db9742

                * 包名.类名@编码值 ---->理解为p1的内存地址。

                * java中的数据类型:

                * 基本类型:byte,short,char,int,long,bolean,float,double

                * 引用类型:

                * 数组,类类类型

                */

                //step2:通过对象访问属性,语法是.

                //给对象的属性,进行赋值

                p1.name = "王二狗";//给p1这个对象的name属性进行赋值

                p1.age = 18;

                p1.sex = '男';

                //获取对象的属性值

                System.out.println("姓名:"+p1.name);

                System.out.println("年龄:"+p1.age);

                System.out.println("性别:"+p1.sex);

                //step3:通过对象,访问成员方法--->理解为就是对象调用成员方法

                p1.eat();

                p1.sleep();

                p1.daDouDou();

        }

}

内存分析图:

示例代码:

package com.qf.demo01;

public class Test2Person {

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

                //1.创建一个Person类的对象

                Person p1 = new Person();

                System.out.println(p1);//p1的内存地址:com.qf.demo01.Person@15db9742

                p1.name = "张三狗";

                p1.age = 19;

                p1.sex = '男';

                System.out.println(p1.name);//张三狗

                System.out.println(p1.age);//19

                System.out.println(p1.sex);//男

                //2.再创建一个Person类的对象

                Person p2 = new Person();

                System.out.println(p2);//p2的内存地址,com.qf.demo01.Person@6d06d69c

                p2.name = "李小花";

                p2.age = 17;

                p2.sex = '女';

                System.out.println(p2.name);//李小花

                System.out.println(p2.age);//17

                System.out.println(p2.sex);//女

                //3.

                Person p3 = null;//仅仅声明了Person类型的对象p3,但是实际上,

                                           //并没有在堆内存中,创建出   真正的对象。

                /*

                * NullPointerException,空指针异常

                *

                * 对象不存在,就是个null,

                 * 强行的访问对象的属性或调用方法,就会空指针异常。

                */

                //System.out.println("---->"+p3.name);//报错啦:NullPointerException

                p3 = p1;//将p1的值(p1对象的内存地址),赋值给p3,

                            //结果-->p1和p3存储的是同一个对象的内存地址。

                p3.name = "李铁柱";

                System.out.println(p1.name);//李铁柱

                System.out.println(p2.name);//李小花

                System.out.println(p3.name);//李铁柱

                Person p4 = new Person();

                System.out.println(p4);//?

                p4.name = "王二丫";

                p4.age = 18;

                p4.sex = '女';

                System.out.println(p4.name );

                System.out.println(p4.age);

                System.out.println(p4.sex);

                p4 = p1;//改变对象的内存地址了,就不再指向原来的内存对象。

                System.out.println(p1.name);

                System.out.println(p3.name);

                System.out.println(p4.name);

        }

}

内存分析图:




希望我能坚持住每天坚持记录着 ...

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

推荐阅读更多精彩内容