类和对象、方法(1)


类和对象


什么是类和对象?

类:类就是我们经常看见的class关键字,类有一点抽象,因为它具体的内容是需要通过对象来实现的。

对象:对象是类的一个实例。

例子:

等于 蓝图 对象 等于 蓝图的最终产物

比如说:手机

  1. 首先肯定现有蓝图(类)

  2. 然后才有蓝图的最终产物(对象)

这也代表二者缺一不可

 

类(class)

  • 类的创建

    class 类名称{

    成员变量

    成员方法

    }

     

  • 类的内部结构:

    1. 成员变量

    2. 成员方法

成员变量

成员变量其实就是普通的变量,但是我们不会立刻取赋值

格式:变量类型 变量名称;

成员方法(后面深入讲解)

成员方法是一个封装起来的功能。

目前格式:

public void 方法名称(){

//具体的代码...

}

 

对象

  • 对象的结构:

    1. 导包:关键字 import 包名称.类名称;

      什么是导包?

      导包就是把你要用的类的路径拿过来

      如果类和对象在同一个包下,则可以省略导包

    2. 创建

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

       

    3. 使用

      • 成员变量

        对象名.成员变量名;

        赋值:

        对象名.成员变量名 = 数据值;

         

      • 成员方法

        对象名.成员方法名();

 

代码演示

 //1.导包:不需要,因为在同一个包下
 public class main {
 
     public static void main(String[] args) {
 //       2.创建:类名称 对象名 = new 类名称();
         Person person = new Person();
 
         /*
         使用:
         - 成员变量
           对象名.成员变量名;
         赋值:
            对象名.成员变量名 = 数据值;
 
         - 成员方法
             对象名.成员方法名();
          */
         String name = person.name;
         System.out.println(name);
         //或者
         System.out.println(person.name);
 
         /*
         赋值:
            对象名.成员变量名 = 数据值;
          */
         person.name = "茶仙°";
         System.out.println(person.name);
         person.age = 1;
 
         /*
         - 成员方法
             对象名.成员方法名();
          */
         person.show();
    }
 }
 
 class Person{
 
     /*
     成员变量
     格式:变量类型 变量名称;
      */
     String name;
     int age;
 
     /*
     成员方法
     格式:
     public void 方法名称(){
 
    //具体的代码...
 
     }
      */
     public void show(){
         System.out.println("我叫:" + name + ",我" + age + "岁了");
    }
 }

 

注意事项

  1. 每new一次对象就代表创建了一次对象,每一个对象都是独立的。

    例子:

     //1.导包:不需要,因为在同一个包下
     public class main{
     
         public static void main(String[] args){
             //2.创建对象
             Person person = new Person();//创建了一个对象
             Person person2 = new Person();//创建了两个对象
             Person person3 = new Person();//创建了三个对象
             Person person4 = new Person();//创建了四个对象
             Person person5 = new Person();//创建了五个对象
        }
     }
     
     class Person{
     
         //创建成员变量
         String name;
         int age;
     
         //创建成员方法
         public void show(){
             System.out.println("我叫"+name+",我"+age+"岁了");
        }
     }
  2. 成员变量也可以是对象,或者数组

     class Animal{
         //成员变量
         String name;
         int age;
         String color;
     }
     
     class dog{
         //成员变量
         String name;
         int age;
         //成员类
         Animal ani;
         //成员数组
         int[] arr;
     }

成员方法(方法)


什么是成员方法?

成员方法也可以叫做方法,方法是一个封装的功能,我们可以通过调用来使用。

  • 方法的好处:当我们需要重复写一些功能的时候,这时候把功能写到方法里,之后只要调用就行,不需要重复的写功能

  • 成员方法完整定义格式

    修饰符(public) 返回值类型 方法名称(参数类型 参数名称){

    //具体的功能

    return 返回值;

    }

     

  • 解析

    1. 修饰符:权限的大小(后面细讲)

    2. 返回值类型:代表方法有没有返回值,如果方法没有:void,并且return和返回值不需要写

    3. 方法名称:取一个名字给方法

    4. 参数类型和参数名称:方法内部功能需要的材料,我们也把:参数类型和参数名称称为“ 参数列表 ”

    5. return:

      作用一:结束方法

      作用二: 把返回值还给调用处

      【调用处】:调用方法的代码,并且调用方法的代码需要创建一个变量来接收返回值

    6. 返回值:具体功能的最终结果。

     

  • 创建方法的三要素

    1. 返回值类型

    2. 方法名称

    3. 参数列表

     

  • 解析代码

     class Person{
         
        //成员变量
         String name;
         int age;
         
        //成员方法
         public void show(){
        System.out.println("我叫"+name+",我"+age+"岁了");
      }
     }
    • 三要素:

      1. 返回值类型:void(代表没有)

      2. 方法名称:show

      3. 参数列表:没有

     

  • 方法比较

    1. 有返回值类型和没有返回值类型

       public class main {
       
           public static void main(String[] args) {
               main main = new main();
               //调用方法的时候需要【接收】
               //有返回值类型,接收:int sum = main.sum();
               int sum = main.sum();
               
               //没有返回值类型,传入参数:int sum = main.sum(1,1);
               main.sum2(1,2);
          }
       
           /*
           创建方法的三要素:
           返回值类型:int
           方法名称:sum
           参数列表:int a, int b
            */
           //有返回值类型
           public int sum(){
               int result = 1 + 1;
               return result;
          }
           
           /*
           创建方法的三要素:
           返回值类型:void
           方法名称:sum2
           参数列表:没有
            */
           //没有返回值类型
           public void sum2(){
               int result = 2 + 2;
               System.out.println(result);
          }
       }
    2. 有参数和没参数

       public class main {
       
           public static void main(String[] args) {
               main main = new main();
               //调用方法的时候需要【接收】和【传入参数】
               //有参数
               int resultOfSum = main.sum(1,1);
               System.out.println("结果" + myNameIs);
               /*
               接收:int resultOfSum = main.sum();
               传入参数:int resultOfSum = main.sum(1,1);
                */
       
               //没参数
               System.out.println("结果:"+main.sum2());
       
          }
       
           /*
           创建方法的三要素:
           返回值类型:void
           方法名称:sum
           参数列表:int a, int b
            */
           //有参数
           public void sum(int a, int b){
               int result = a + b;
               return result;
          }
       
           /*
           创建方法的三要素:
           返回值类型:void
           方法名称:sum2
           参数列表:没有
            */
           //没参数
           public void sum2(){
               int result = 2,2;
               return result;
          }
       }
    3. 有参数 没有返回值类型 和 没参数 有返回值类型

       public class main {
       
           public static void main(String[] args) {
               main main = new main();
               //调用方法的时候需要【传入参数】
               //有参数 没有返回值类型
               main.sum("茶仙°");
               
        //没参数 有返回值类型
               String name = main.sum2();
               System.out.println("我叫"+ name);
       
          }
       
           /*
           创建方法的三要素:
           返回值类型:void
           方法名称:sum
           参数列表:String name
            */
           public void sum(String name){
               System.out.println("我叫"+name);
          }
       
           /*
           创建方法的三要素:
           返回值类型:String
           方法名称:sum2
           参数列表:没有
            */
           public String sum2(){
               String myName = "茶仙°2";
               return myName;
          }
       }

     

  • 方法注意事项

    1. 返回值要和返回值类型保持一致!

    2. 方法的返回值类型和参数也是可以有“类” 和 “数组”

    3. 方法不能嵌套

    4. 如果有多个参数需要用 , 来隔开。

 

递归方法

  • 什么是递归方法?

    递归方法就是一种方法循环,但是这种方法循环内部是需要有参数、判断和返回值

     

  • 递归方法代码

     public class main{
         
         public static void main(String[] args){
             main main = new main();
             int resultOfFactorial = main.factorial(5);
        }
     }
     
     class test{
         //递归方法
         public int factorial(int n){//有参数
             //判断
             if(n == 1){
                 return 1
            }else{
                 return factorial(n - 1);
            }
        }
     }

     

 

方法重载

  • 什么是方法重载?

    方法重载是一个属于方法到规则,规则:同名不同参数

  • 代码演示

     public class main{
         
         public static void main(String[] args){
             
        }
         
         public void sum(int a, int b){
             int result = a+b;
             System.out.println(result);
        }
         
         public void sum(int a, int b, int c){
             int result = a+b+c;
             System.out.println(result);
        }
     }

     

  成员变量和局部变量的区别


  1. 定义的位置不一样【重点】 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中

     

  2. 作用范围不一样【重点】 局部变量:只有方法当中才可以使用,出了方法就不能再用 成员变量:整个类全都可以通用

     

  3. 默认值不一样【重点】 局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样

作用域


什么是作用域?

作用域是代码执行的范围

它的范围就是 {} 内部

  • 代码演示

     public class main{
         
         public static void main(String[] args){
             
        }
     }
     
     class test{
         
         //作用域:{}
        {
             int num = 1;
             public void showNum(){
                 System.out.println(num);
            }
        }
             //System.out.println(num);
         
     }
    1. 注意,出了作用域就不能再使用作用域内部的成员变量和成员方法。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM