博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之路 面向对象基础
阅读量:5150 次
发布时间:2019-06-13

本文共 3653 字,大约阅读时间需要 12 分钟。

 
1 /* 2 对象:真实存在的唯一的事物。 3  4 类: 同一种类型的事物公共属性与公共行为的抽取。 5  6  7 java面向对象语言:  8  9 核心思想: 找适合的对象做适合的事情.10 11 12 找对象的方式:13     14     方式一: sun已经定义好了很多了类,我们只需要认识这些类即可创建对象使用。15     方式二: 我们需要自定义类,通过自定义类创建对象。16 17 在整理笔记的过程中对自己有疑问的概念使用代码验证或者推翻它。18 19 自定义类三步骤:20     1. 自定义一个类。21           class 类{22             事物 的公共属性使用成员 变量描述23 24 25             事物的公共行为使用函数描述。26           }27     2. 可以通过类创建对象。28     3. 访问(设置)对象的属性或者调用对象的方法。29 30 31 成员变量与局部变量 的区别:32     1. 自定义的位置区别:33             1. 成员变量是定义在方法之外,类之内的变量。 34             2. 局部变量是声明在方法之内的变量。35     2. 作用上的区别: 36             1. 成员变量的作用描述一类事物的属性。37             2. 局部变量的作用是提供一个变量给方法内部使用的。38     3. 生命周期的区别;39             1. 成员变量随着对象的创建而存在,随着对象的消失而消失。40             2. 局部变量是调用到了对应的方法执行 到了创建该变量的语句时存在,一旦出了自己的作用域马上从内存中消失。41     4. 初始值的区别:42             1. 成员变量是有默认的初始值的。43             2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。44 45     46 匿名对象: 没有引用类型变量指向的对象就称作为匿名对象。47 48 匿名对象要注意的细节:49         1. 一般不会给匿名对象的属性赋值,因为永远都没法获取到。50         2. 两个匿名对象永远都不可能是同一个对象。51 52 匿名对象好处:简化书写。53 54 55 匿名对象的应用场景:56     1. 如果调用一个对象的方法一次时,然后这个对象就不再使用,那么这时候可以使用匿名对象。57     2. 可以作为实参调用一个函数。58 59 封装:60 61 62 封装的步骤:63     1. 使用private修饰需要被封装的属性.64     2. 根据需要提供get或者set方法设置以及获取属性。65 66 封装的好处:67     1. 提高了数据的安全性。68     2. 操作简单。69     3. 隐藏了实现。70 71 注意:一般实体类的属性我们都会封装起来。    72 73 74 75 76 77 78 */
 

 

 
1 /*  2 java是 面向对象的语言: "万物皆对象": 任何事物都可以使用类进行描述。  3   4   5 需求: 使用java类描述 一个婴儿.  6   7 在现实生活中有两种婴儿, 一种婴儿一出生就具备了名字(白户),还有一种婴儿就是 出生之后才有名字 的(黑户)。  8   9  10 构造函数: 11  12 构造函数的作用: 给对应的对象进行初始化。 13  14  15 构造函数的定义的格式: 16      17     修饰符  函数名(形式参数){ 18         函数体... 19     } 20  21 构造函数要注意的细节: 22     1. 构造函数 是没有返回值类型的。 23     2. 构造函数的函数名必须要与类名一致。 24     3. 构造函数并不是由我们手动调用的,而是在创建对应的对象时,jvm就会主动调用到对应的构造函数。 25     4. 如果一个类没有显式的写上一个构造方法时,那么java编译器会为该类添加一个无参的构造函数的。 26     5. 如果一个类已经显式的写上一个构造方法时,那么java编译器则 不会再为该类添加 一个无参 的构造方法。 27     6. 构造函数是 可以在一个类中以函数重载 的形式存在多个 的。 28  29  30 疑问:创建对象时,jvm就会调用到对应的构造方法,那么我们以前没有学构造方法,那么 31 以前创建对象时,jvm是否 也会调用构造方法呢?如果有?构造方法从何而来呢? 32                  33             会调用, java编译器在编译的 时候给加上去的。 34  35 jdk提供了一个java开发工具(javap.exe)给我们进行反编译的。 36  37  38 javap 反编译工具的使用格式: 39          40         javap -c -l -private 类名 41  42 疑问: java编译器添加 的无参构造方法的权限修饰符是 什么? 43         与类的权限修饰是一致的。 44  45  46 构造函数与普通 函数的区别:     47     1. 返回值类型的区别: 48         1. 构造函数是没有返回值类型 的, 49         2. 普通函数是有返回值类型的,即使函数没有返回值,返回值类型也要写上void。 50     2. 函数名的区别: 51         1. 构造函数的函数名必须要与类名一致, 52         2. 普通函数的函数名只要符合标识符的命名规则即可。 53     3. 调用方式的区别: 54         1. 构造函数是 在创建对象的时候由jvm调用的。 55         2. 普通函数是由我们使用对象调用的,一个对象可以对象多次普通 的函数, 56     4. 作用上的区别: 57         1. 构造函数 的作用用于初始化一个对象。 58         2. 普通函数是用于描述一类事物的公共行为的。 59  60  61 */ 62  63 //婴儿类 64 class Baby{ 65      66     int id; //身份证 67   68     String  name;  //名字 69  70     //构造函数 71     public  Baby(int i , String n){ 72         id  = i; 73         name = n; 74         System.out.println("baby的属性初始化完毕!!"); 75     } 76  77     //无参 的构造函数 78     public Baby(){ 79         System.out.println("无参的构造函数被调用了.."); 80     } 81  82      83     //哭 84     public void cry(){ 85         System.out.println(name+"哇哇哭..."); 86     }     87 } 88  89  90 class Demo2  91 { 92     public static void main(String[] args)  93     {     94         //创建一个baby对象 95         Baby b1 =     new Baby(110,"狗娃"); //婴儿诞生   白户 96         System.out.println("编号:"+ b1.id +" 姓名:"+ b1.name); 97         b1.cry(); 98         b1.cry(); 99 100     101 102         /*103         //黑户104         Baby b2 = new Baby();105         new Baby();106 107         b2.id = 112;108         b2.name = "狗剩";109         System.out.println("编号:"+ b2.id +" 姓名:"+ b2.name);110         */111     }112 }

 

转载于:https://www.cnblogs.com/aytsoft/p/5587084.html

你可能感兴趣的文章
布兰诗歌
查看>>
python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器...
查看>>
例6-5
查看>>
eclipse变量名自动补全
查看>>
一个数据库操作类(包含弹出对话框函数,也可自定义弹出的脚本内容)
查看>>
HIVE文件
查看>>
转——调试寄存器 原理与使用:DR0-DR7
查看>>
C# MP3文件属性读取
查看>>
Git 内部原理之 Git 对象哈希
查看>>
Vue中引入TradingView制作K线图
查看>>
虚拟机CentOS设置IP
查看>>
Django之ORM多对多表创建方式,AJAX异步提交,分页器组件等
查看>>
存储过程
查看>>
C# RichTextBox 滚动条 滚动到最新行
查看>>
js编码
查看>>
BZOJ 1412 & 最小割
查看>>
【26】java的组合与继承
查看>>
web开发,我们是否应该更加Deep Inside了?
查看>>
springboot部署多个vue项目
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>