zoukankan      html  css  js  c++  java
  • java之路 面向对象基础

    
    
     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 }
  • 相关阅读:
    MS SQL入门基础:使用SQL Server Profiler
    收藏夹路径设置
    MS SQL入门基础:数据转换服务基本概念
    MS SQL入门基础:复制的概述和术语
    MS SQL入门基础:创建备份设备
    巧用ASP生成PDF文件
    MS SQL入门基础:sql 警报
    MS SQL入门基础:基于HTTP的数据访问
    MS SQL入门基础:XML文档与数据库表
    MS SQL入门基础:复制监视器
  • 原文地址:https://www.cnblogs.com/aytsoft/p/5587084.html
Copyright © 2011-2022 走看看