zoukankan      html  css  js  c++  java
  • Java面向对象——类,对象和方法

    1.类的概念

      在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同时,当我们认识一个新事物的时候,我们一般来说是过往的事物中总结事物的特点(特征),并比对新事物,新事物进行归类,以达到认识新事物。

      在Java程序中,类是对一组具有相同特征和行为的对象的抽象描述。可以看出和生活中对类的定义很像。但是在Java程序中,我们将其相同的特征称为属性,行为则称为方法。 

      理解:

        [1] 包含两个要素:特性和行为 => 同一类事物具有相同的特征和行为。

        [2] 是一个群体性概念。例如:网红、明星、草根、宅男、萝莉

        [3] 类可以理解为现实生活中所说 “类型

      引入类的作用:程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物

    2.对象的概念

      对象是类的具体实现,表示一个独立的、唯一的个体。

      理解

      [1] 对象是通过类生成的。对象一定具备该类的特性和行为。

      [2] 对象是个体类是群体。=> 对象是独立的、唯一的。=> 属于同一类型的对象也是相互独立的

    3.类和对象的区别

      类是抽象的,是一个群体概念。对象是具体的,是一个独立个体。

      一个独立的对象一定属于某个类。理解包含对象

    4.属性和方法

    4.1属性  

      类或者对象具有的特征在程序中称为属性(property/attribute)

      具体对象的属性拥有数据称为属性值。

      属于同一类对象都具有相同的属性,但各个对象都拥有各自的属性值。这些属性值区分了不同的对象。

    4.2方法

      或者对象的行为称为方法(Method),可以理解为:一个对象在类中可以做很多东西,能做什么在类里面就叫做方法。

      例如:定义一个猫类,猫类中有一个对象加菲猫,加菲猫可以做很多事情如:吃,喝,睡觉,这些在类中称为方法。

    5.定义类和方法

      开发者可以根据需要自定义类,语法

    [修饰符] class 类名{
        属性
        方法
    }

    案例:定义一个类实例化对象

     1 public class SuperHero{
     2     //声明类的属性
     3     String name;
     4     int age;
     5     char gender;
     6     String skill;
     7     //声明类的方法
     8     
     9     public void hit(String kname){
    10         System.out.println("我"+name +kname+"打灭霸");
    11     }
    12     
    13     public void showInfo(){
    14         System.out.println("年龄"+age);
    15         System.out.println("性别"+gender);
    16         System.out.println(skill);
    17         System.out.println("我!"+name+"打钱!");
    18     }
    19 }
     1 public class Test01{
     2     public static void main(String[] args){
     3         SuperHero thor =  new SuperHero();//创建对象,实例化过程
     4         //给属性赋值(.语法)
     5         thor.name = "雷神";
     6         thor.gender = '男';
     7         thor.skill = "飞,放电";
     8         //调用方法
     9         thor.hit("用个锤子");
    10         thor.showInfo();
    11         
    12         
    13         System.out.println();
    14         SuperHero amercaMan =new SuperHero();
    15         //给属性赋值(.语法)
    16         //amercaMan.name = "美国队长";
    17         //amercaMan.gender = '男';
    18         //amercaMan.skill = "盘他 ";
    19         //调用方法
    20         amercaMan.hit("用个盘子");
    21         amercaMan.showInfo();
    22     }
    23 }

    5.1.局部变量和成员变量

      局部变量:方法或者语句块声明的变量称为局部变量,语句块就是作用域。

      局部变量在其所在的作用域有效,出了作用域就无效。

      作用域可以嵌套,内部作用域可以访问外部作用域的变量。

     1 public void learn(String cName){
     2         // 方法中定义的局部变量
     3         System.out.println(name+" learn "+cName);
     4         
     5         // 语句块中定义局部变量
     6         {
     7             int count = 10;
     8             System.out.println(" count "+count);
     9             System.out.println("cname"+cName);
    10         }
    11         
    12         // System.out.println(" count "+count);
    13 }

    成员变量:方法外部,类的内部定义的变量称为类的成员变量,简称成员变量。有些地方把属性称为filed(字段)

    成员变量必须通过类的实例/对象调用例如 stu.name ,有时成员变量也称为实例变量。

    成员变量 == 属性 == 字段 == 实例变量

    中包含两个成员:成员变量和成员方法。

    5.2属性的声明

    [修饰符] 属性类型 属性名称  [=默认值]

    在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0   char:u0000,  boolean:false,  所有引用类型:null) 

    属性/成员变量的作用域范围是整个类体

    6.面向对象编程思维

      面向对象编程(oop),一切都看出对象,通过类构造对象java程序都是通过class类组织的。

      所谓面向对象通过类构造对象,使用对象完成需求。

      需求:手机播放一首歌曲

      

     1 public class Phone{
     2     
     3     String brand;
     4     String type;
     5     float price;
     6     
     7     public void showInfo(){
     8         System.out.print("品牌:"+brand);
     9         System.out.print(",型号:"+type);
    10         System.out.println(",价格:"+price);
    11     }
    12     
    13     public void play(Music music){
    14         System.out.println("正在用"+brand+type+"播放<<"+music.name+">>歌曲");
    15         music.showInfo();
    16     }
    17 }
     1 public class Music{
     2     
     3     String name;
     4     String actor;
     5     int times;
     6     String content;
     7     
     8     
     9     public void showInfo(){
    10         System.out.println("-- "+name+" --");
    11         System.out.println("演唱者:"+actor);
    12         
    13         int h = times / 3600;
    14         int m = times % 3600 / 60;
    15         int s = times % 60;
    16         
    17         System.out.println("时长:"+h+":"+m+":"+s);
    18         System.out.println(content);
    19     }
    20 }
     1 public class Test01{
     2     public static void main(String[] args){
     3         
     4         Music music = new Music();
     5         music.name = "向天再借五百年";
     6         music.actor = "韩磊";
     7         music.times = 356;
     8         music.content = "沿着江山起起伏伏温柔的曲线,
    放马爱的中原爱的北国和江南";
     9         
    10         Phone phone = new Phone();
    11         phone.brand = "Apple";
    12         phone.type = "iPhone XR";
    13         phone.price = 5999.0f;
    14         
    15         phone.play(music);
    16         
    17     }
    18 }

    总结:

      面向对象编程就是完成一个复杂的需求需要各个对象之间相互配合完成。对象的创建需要定义类型,java程序就是通过类来组织程序的。

      java中一切都是对象。

    7.抽象

    7.1抽象的概念

     根据业务中的对象抽象成计算机识别的类简单的说就是抽出各个对象像的部分。

      抽象的步骤

      [1] 发现(归类)。类一般用名

      [2] 发现类的属性(特征)。属性一般用名发现类的属性,一般只放和业务相关的属性。

      [3] 发现类的方法(行为)。方法一般是动词。只放和业务相关的方法。

      抽象一个下载类。

      [1] DownLoad

      [2] url/name/size/progress/type/location…

      [3] start()/pause()/stop()/delete()…

    7.2类图

      类图可以让开发者更直观地创建类。

      

      + public / – private

       https://www.processon.com

  • 相关阅读:
    Linux 磁盘挂载和mount共享
    Socket编程实践(8) --Select-I/O复用
    JavaScript 作用域链图具体解释
    扩展MongoDB C# Driver的QueryBuilder
    Gray Code
    Android网络编程Socket【实例解析】
    设计模式之:代理模式
    LOL英雄联盟代打外挂程序-java实现
    MySQL系列:innodb源代码分析之线程并发同步机制
    linux压缩打包
  • 原文地址:https://www.cnblogs.com/qq308015824/p/10739107.html
Copyright © 2011-2022 走看看