2021-05-20 Java之面向对象

Posted Guarding and trust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021-05-20 Java之面向对象相关的知识,希望对你有一定的参考价值。

Java基础11

Java面向对象2 之属性和方法

  • 属性
    属性也可以叫特征、特点。属性一般是在类里的,我们知道类是抽象的,现在我们再从类里引入属性(特征)。什么是属性,来举几个例子就清楚了。汽车🚙,这是个类——汽车类,应该毫无疑问的,抽象的。那么问题来了,这车是怎么样的?好像我们只是知道有这种东西,这种工具,目前不知道是怎么样的。而这时候有了属性这个概念就诞生了,比如这台车有颜色,红色的,有品牌,法拉利,还有价格等等这些就是属性了,不过有个问题,类是抽象的,也就是属性也是抽象的,因此定义属性的时候也是有共同特性的。

  • 啰嗦了那么多,可能还是不懂,我们还是直接定义几个属性,不过在定义之前,先创建一个类:

    public class car(){ //创建了一个汽车类
         //属性
         public String color;  //颜色
         public String brand;  //品牌
         public double price;  //价格
    }
    

有没有发现这个定义在哪见过,很相似。没错,在一开始学习变量的时候,比如int i; 就是类型+变量名;不过这里加了一个权限public,没错,这就是属性,虽然和定义变量很类似,不过也有本质上的区别的。

  • 属性与变量的区别
  1. 属性一般是在类里面的。
  2. 属性的前面有权限,比如public(公有的)。
  3. 属性可以不赋值(有默认值),但使用变量必须赋值,不然无法使用。
  • 属性的使用
    那么问题又来了,属性定义好了,怎么赋值和使用呢?其实也是很简单的,就和之前给变量赋值很类似,首先我们得实例化一个对象,把属性与对象结合就成了对象的属性。

       public  class Test(){
               public static void main(String[] args){
                  //a.实例化一个对象 car
                    Car car = new Car();
                 //b.使用对象属性
                     car.color ="红色";
                     car.brand ="法拉利";
                     car.price =100;
                  //c.打印
                    System.out.println("买了一台价格"+ car.price + "万的" +car.coror + "的"+ car.brand)
        }
    }
    

输出结果是:

      买了一台价格100万的红色的法拉利

可见,对象使用属性的语法格式是:对象名.属性名=值。
如果不赋值的话,那么就会使用默认值。另一种赋值也可以在类中赋值,也就是说定义属性的同时赋值,这里赋的值是默认的,也就是实例化任何一个对象都是默认的,不过你也可以使用对象的时候赋值,比如下面的例子:

public int a =10; //定义属性时赋值,可以看作默认值
car.a =20;  //把属性给对象car并赋值
  • 方法
  1. 概念:方法是一段代码的包裹体,方法也叫动态、行为、动作,可以说是动词。是在类中的,表示类中的一些动作行为。

  2. 四种形态的方法
    a. 无参无返回值(void)的方法

     public void 方法名(){  
       }
    

b.有参(数)无返回值(void)的方法

 public void 方法名(参数类型1 参数值1,参数类型2 参数值2,参数类型3 参数值3.....){  

 }

c.无参(数)有返回值(return)的方法

public 类型 方法名(){      
 return 类型值(或对应表达式); 
}    

d.有参(数)有返回值(return)的方法

public 类型 方法名(参数类型1 参数值1,参数类型2 参数值2,参数类型3 参数值3.....){    
   return 类型值(对应表达式); 
      }

以上就是方法的几种基本形态,灵活使用方法,可以省下很多精力和时间,这也是面向对象的一种特点。接下来我们把上面的汽车🚙定义方法,让其真正的动起来。

public class car(){ //创建了一个汽车类     
   //属性               
   public String color;  //颜色           
   public String brand;  //品牌    
   public double price;  //价格   
        
          //方法    
        public void start(){  //定义一个启动(start)方法 无参无返回值     
           //注:方法里面是可以使用属性的!          
               System.out.println(brand + "汽车🚙启动了...");     
                    }             
         public void drive(String people){ //定义了一个drive方法 有参(类型是String 值是people) 无返回值              System.out.println(brand +"被"+people+"开着");      
             }      
         public int  buy(int num){ //定义了一个buy方法,有参数(类型int 值num) 有返回值(类型int)          
            int money = price * num;         
          return money;//返回买了几台车的价格   
                }  
          }

方法就以上这样定义的,值得注意的是,方法里面是可以使用属性的,方法里面也可以使用方法的,比如在drive方法中调用start方法,这样的话,到时使用方法的时候,调用一个就可以了。调用方法的语法格式是:

 方法名.(对应的参数)

就是如此,有参数就输入对应的参数就行。

  1. 方法的调用 知道怎么定义方法了,那么接下来肯定是调用方法了,每一个对象都可以调用自己的方法,语法格式分为有返回值和无返回值两种方式。
    无返回值

         对象名.方法名(对应的参数);   
    

有返回值

  对应类型 返回值的变量名 = 对象.方法名(对应的参数);  

下面进行调用方法:

 public  class Test(){         
       public static void main(String[] args){                           
       //a.实例化一个对象 car      
         Car car = new Car();           
        //b.使用对象属性               
           car.color ="红色";                    
           car.brand ="法拉利";           
           car.price =100;                                        
          //使用(调用)方法           
            car.start();//调用start()方法                
            car.drive("小王");//调用drive()方法          
            int carMoney = car.buy(2); //调用buy()方法                
 //打印             
           System.out.println("一共花了"+carMoney+"万元");    
       }      
     }

运行结果为:

法拉利汽车🚙启动了...  
法拉利被小王开着    
一共花了200万元
  • 小结: 以上就是对象的属性和方法的基本知识点,特别注意的是属性和方法是在类里面的,总的来说基本知识难度不大,但是灵活运用需要不断练习,从中找到其中的奥秘。学会这两个知识点才刚刚打开面向对象编程的大门,加油吧!

以上是关于2021-05-20 Java之面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

PHP面向对象之选择工厂和更新工厂

三Java面向对象之猜拳游戏

java面试准备之面向对象