方法和面向对象

一、方法的定义:
     固定语法:

     修饰词  返回值类型  方法名(形式参数){
        逻辑代码
     }
方法的位置:
     在类体中,与main方法是并列关系,类体中可以有
     多个方法。

修饰词:
    (1)public--公共的
        (2)protected--受保护的
    (3)private  --私有的
    也可以不写修饰词,即默认的(default)

    static修饰词可以与上述三个连用
返回值类型:
      (1) void---无返回值类型
      (2)java语言的任意一种类型
         可以是基本数据类型,也可以是引用数据类型
方法名:
      命名时尽量做到见名知意,驼峰命名法,
      首字母小写
形式参数:
    用于接收调用者传入的数据。
    与变量的声明语法相同。
关键字return:
       作用1:结束方法逻辑
       作用2:如果返回值类型标记的是java语言类型的
              某一个类型名,那么return关键字后
          必须跟着一个 此类型的数据或变量。
       当方法有返回值类型时,return关键字后的数据
       就是此方法要返回的数据。返回给调用者。
       如:
       int num = Math.random();
        方法random()返回一个数据给main方法。
         main方法存入num变量中
    
       

如:
   reg1:
     
     public static void sum(){
    int a = 3;
    int b = 5;
    System.out.println(a+b);
    [return;]---返回值类型处写void时,return可有可无;
     }

   reg2: 计算两个整数a和b的和
     public static void sum(int a,int b){
    int sum = a+b;
    System.out.println(sum);
     }

PS:  方法定义期间,就是制定逻辑流程模板。

   reg3:
       public static int sum(){
       int a = 3;
       int b = 5;
       int sum = a+b;
       return sum;
       }
   reg4: 
       public static int sum(int a,int b){
       int sum = a + b;
       return sum*3;
       }

方法的调用,即使用
     reg1如何使用:
     main(String[] args){
    sum();
     }
     reg2如何使用:
     main(String[] args){
        /*
      调用者main 在使用sum(int a,int b)时
      需要给形式参数赋值,赋的值叫实际参数
    */
    int x = 1;
    int y = 2;
    sum(x,y);
     }

     reg3如何使用
     main(String[] args){
    
    int n = sum();
     }

     reg4如何使用
     main(String[] args){
    int m = 10;
    int n = 20;
    int s = sum(m,n);
     }
    
总结:
   调用方法时:
    无返回值时:
        方法名(有参就传参);
    有返回值时:
        返回值类型 变量=方法名(有参就传参);
=============================================
eclipse(日食):
   是eclipse基金会提供的一款集成开发环境(IDE)。
   也是一款绿色免安装,免费的开发工具。
   使用前,需要JDK开发环境。
其他开发工具如:myeclipse,ideas,netBean,JBiulder

使用步骤:
   (1)新建项目
    File-->new-->java Project--name-->finish
   (2)新建包(package)
        命名规则
    域名后缀.域名.项目名.模块名
    src-->new-->package--name--finish
   (3)创建源文件(.java)
      选中包-->new-->class--name--finish

      补全键:  alt+ ?

      main方法的快捷方式
      main+补全键
      syso+补全键

      ctrl  + s的习惯

方法内:
   引用数据类型与基本数据类型的区别:
   引用数据类型的数据,称之为对象,存储在内存中
   某一个特定区域,即:堆
   引用类型的变量也存储在内存中的一个特定区域,
   即:栈
   引用类型的变量存储的内容 不是对象,而是对象在堆空
   间的位置信息

   基本数据类型的数据,不叫对象。
   基本数据类型的变量,存在栈里,存储的内容是基本类型
   的数据。

----------面向对象
概述:java编程语言是纯粹的面向对象思想的语言。

现在程序开发有两个主流的方法:
(1)结构化程序设计,也叫面向过程程序设计
    结构化程序设计主张以功能/步骤来进行软件设计。
    如在解决问题时,主要是思考的是解决问题的步骤思路:
    围棋游戏:
    1.游戏开始,2,黑棋执行,3,绘制图片,4,判断输赢,
    5,白棋执行,6,绘制图片,7,判断输赢,8,返回2. 
    9,游戏结束
  结构化程序设计是以函数为程序单元 ,从一个函数开始,调用其他
  普通函数,进行一些数据处理,一直调用下去。
  
    设计思想:自顶而下,逐步精分,模块化
    
   此种方式的编程语言有C,Basic,Pascal
    
    
    
(2)面向对象程序设计。
       面向对象编程思想逐渐成熟起来。
      它使用类,对象,继承,封装,消息等概念来进行程序设计。
      主要从现实世界的客观事物(即对象)出发来进行开发软件系统,
      尽可能的运用人的自然思维方法 ,从客观事物来思考问题,
      认识问题。 从这些事物的本质特点,来抽象出系统所需要的类,
      作为程序的基本单元。 
      
      围棋游戏:
           黑白棋子及其行为,棋盘, 输赢规则
           
     类是面向对象编程的基本单元,类含有一类事物的共同特征,
     类可以产生多个对象,这些对象构成了程序中所需要的数据。
     
     从图中我们可以看出,软件系统是由多个类组成的。
     类是一类事物的抽象体现,而这些事物都有一些状态数据。
     即Field ,如,人,有身高,体重,姓名,性别,爱好等(
      程序设计时,只关心业务所需要的数据
   )

   Field,我们称之为成员变量,有些资料称之字段,也有些资料
      称之为属性,java有property关键字 是属性的。
    
    
    类除了封装了一些事物的状态数据外,还提供了操作这些状态数据的
    方法(Method),实现逻辑。
    
    从上述内容可以总结出
            成员变量(状态数据)+方法(行为)定义=类的定义
            
            
  此类方法的编程语言:C++,java,C#, Ruby          
            
  ==================================
    完成一个“猪八戒吃西瓜”这样的逻辑
    
    面向过程: 函数吃 是核心
            吃(猪八戒,西瓜)
    面向对象: 一类事物的一个:猪八戒,吃是猪八戒的行为
                        一类事物的一个:西瓜
            猪八戒.吃(西瓜)
            
  组装电脑:  
            如果是主板,硬盘,内存条这样的大件,容易组装
      ---面向对象      
            
            如果是二极管,三极管,电路板这样的小件进行组装,
            很难 ---面向过程   
       
 面向对象要比面向过程的粒度要大,相对来说容易,简单。
 面向过程要比面向对象的性能要高,因为面向对象要进行对象的实例化,
 比较吃内存,吃性能。  

===========================================
抽象数据类型:用一堆不同类型的状态数据来描述的一种新的事物。
          
   reg:  描述电脑,
                         颜色,     尺寸,  型号,      主板,              内存,    硬盘,显卡                         
           0xFF00FF  15.6  thinkpadT460  华硕      三星       希捷 , inter
            0xFF00FF  15.6  lenovoE40    三星      三星       西数 , inter
    
    这些事物的共同行为:
                       办公
            playGame
            play
            
     用状态数据(成员变量)总结一类事物的共同特征,
     用方法总结一类事物的共同行为。
类的定义:   =成员变量+方法

    格式语法:
      修饰词  class  类名{
      type  field1;
      type  field2;
      .....
      
            修饰词 返回值类型  method1(形参){}
            修饰词 返回值类型  method2(形参){}
      .....     
   }
=====================================
   定义一个类型:Person 
   
       成员变量(状态数据-共同特征):
         name,gender,age,birth,idcard,isMarry
       方法(行为)
         eat()
         sleep()
         work()
         sport()   
         
         
   对象:类的实例化,即类中的个体        
            如何创建对象:使用关键字new
         类名   引用变量  = new 类名();
         
  引用变量,简称引用,存储的是对象的地址信息   
  
  成员变量的调用:
         引用.成员变量名
 方法的调用:
         引用.方法名(有参传参)    
         
   类与对象的关系:
             类是对象的模板,对象是类的实例化
             
 内存管理机制:
     jvm将其管理的内存分成三大主要区域:方法区,堆,栈
     方法区:当程序运行时,将所需要的class文件(类的信息)加载到此区间
     堆: 用于存储引用类型所产生的对象,如果对象有成员变量,会给成员变量分配空间
     
     栈:方法内的变量(局部变量)是在栈中开辟的
     
     
基本类型的变量与引用类型的变量:

   值传递: 
       基本数据类型的变量里存储的是基本类型的数据,
       int a = 5;
       int b = a;//将a里的5复制了一份,传递给了b
   
   址传递:
       引用类型的变量里存储的是对象的地址信息
       Car c = new Car();
       Car d = c;//将c里的地址信息复制了一份,传递给了d     
 
 
空指针异常:
   java.lang.NullPointerException
   在程序运行时,可能会出现此异常,出现的原因:
   Car  c = new Car();
   System.out.println(c.color);//0
   Car c = null;
   System.out.println(c.color);//就会出现空指针异常
   
   
   null:是引用类型的默认值

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值