Java面向对象编程

Java面向对象编程,第1张

类:用来描述一类具有相同特征和相同行为的对象。

  • Java中用class关键字来描述类

    • 成员属性:对应的就是事物的属性
    • 成员方法:对象事物的行为
    • 类的定义:
      public class 类名{
        
      }
    • 定义类:就是定义类的成员,包括成员变量和成员方法

    • 类的成员: 成员变量:和之前定义的变量几乎时一样的,只不过位置发生了改变,成员变量位于类中,任何方法之外。成员方法:和之前定义的方法几乎是一样的,只不过把static关键字去掉

    • 类和对象的关系:类是对象的例化

    • 对象
      对象(Object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。

      创建对象

      使用对象:

      调用成员变量:

      对象名.成员变量;

      调用成员方法:

      对象名.方法名;

      成员变量都有默认值,所以在声明成员变量时,可以不用初始化

      数据类型    默认值
       byte              0
       short             0
         int               0
       long              0
       float             0.0
       double         0.0
      boolean      false
        char          空字符
      引用类型      null
       

    • 全局变量(成员变量)  定义在方法的外部,类的内部。使用范围是整个类                                                             不需要初始值                                                                                                                       存储在堆内存中

    • 局部变量

      定义在方法的内部或者某一个语句块的内部,适用范围仅限于方法内或者语句块内
      必须有初始值
      存储在栈内存中
      成员方法
      语法:

      访问修饰符 返回值类型 方法名称{
          方法体
      }
    • 访问修饰符:public

    • 返回值类型由返回值决定

    • 成员变量可以直接在成员方法中使用,但是main方法中如果调用成员变量和方法必须通过对象.属性名\方法名(参数列表)的形式来调用

    • 成员方法之间的调用,直接写方法名

 

构造方法
对象一建立就会调用构造方法,可以创建对象,给成员变量(属性)初始化。

方法名和类名相同
没有返回值和void,没有return
不能被static等关键字修饰
可以方法重
当一个类中没有写构造方法时,系统会默认给该类一个默认的无参构造方法。当自己定义构造方法后默认的构造方法就不存在了。

public class Animal {
    String name;
    int age;
    public Animal(){
        System.out.println("------无参的构造方法------");
        name = "动物";
        age = 0;

    }
    public Animal(String name,int age){
        System.out.println("------有参的构造方法------");
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {
        //创建对象
        Animal a1 = new Animal();
        System.out.println(a1.name+","+a1.age);

        Animal a2 = new Animal("兔子",2);
        System.out.println(a2.name+","+a2.age);
    }
}

 

this关键字

this代表它所在方法所属对象的引用。哪个对象调用的this所在的方法,this就代表哪个对象。

  • 在没有static关键字修饰的方法中使用

  • this关键的字用来区分成员变量和局部变量同名的情况:

    public class Student{
        String name;
        int age;
        int classNum;
    
        public Student(String name,int age,int classNum){    
        
            this.name = name; 
            this.age = age;
            this.classNum = classNum;
        }
        
        public static void main(String[] args){
            Student s1 = new Student("张三",18,1);
            System.out.println(s1.name);
        }
    }
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/756188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-30
下一篇 2022-04-30

发表评论

登录后才能评论

评论列表(0条)

保存