Java类和对象

Java类和对象,第1张

1.面向对象
  • java是一门纯面向对象的编程语言(OOP)

  • 面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情

  • 面向对象和面向过程并不是一门语言,而是一种解决方法

2.类

2.1类的定义

// 创建类
class ClassName{ 
    public field; // 字段(属性) 或者 成员变量
    public method; // 行为 或者 成员方法 
}
  • class为定义类的关键字,ClassName为类的名字,{}中为类的主体

  • 类名用大驼峰

  • 方法名和变量用小驼峰

  • 成员前缀要有public

  • 建议一个java文件里只有一个类

  • 每一个类都会生成一个字节码文件

3.类的实例化

用类创建的其实相当于是一个模板,例如:

创建一个学生类:

class Student{
    public String name;
    public String sex;
    public int age;
    public int tel;
}

用类来实体化创建对象,就是在实例化。

创建一个学生“张三”,12岁,男,电话:2312314

public static void main(String[] args) {
          Student S = new Student();
          S.age=12;
          S.name="zhangsan";
          S.sex="nan";
          S.tel =23123145;
}
  • 当成员变量没有初始化时,默认值就是对应的初始值

4.this引用

this引用指向当前对象(成员方法运行时调用该成员方法的对象),在成员方法中所有成员变量的 *** 作,都是通过该引用去访问

public int year;
public int month;
public int day;
//this.调用的成员的变量
public void set(int year, int month, int day){
            this.year = year;
            this.month = month;
            this.day =day;
}public void print(){
    System.out.println(year + "/" + month + "/" + day);
 }
public static void main(String[] args) {
    test d=new test();
    d.set(1,2,3);
    d.print();
}
5. 对象的构造及初始化

5.1构造方法的特性

名字必须与类名相同,在创建对象时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。

  • 构造方法没有返回值,方法名称和类名是一样的

  • 构造方法一般使用public修饰

  • 构造方法可以重载,可以自己创建一个带参数或者不带的参数的构造方法

    • 例如:

    //重载
    // 无参构造方法
    public Date(){
        this.year = 2000;
        this.month = 12; 
        this.day = 16; 
    }// 带有三个参数的构造方法
    public Date(int year, int month, int day) {
        this.year = year; 
        this.month = month;
        this.day = day; 
    }
    //此时两种构造方法不同,名字相同,参数列表不同构成了重载
  • 如果不创建构造方法,编译器会自己创建一个不带参数的构造方法

  • 如果创建了构造方法,编译器就不会产生构造方法

    • 如果编译器生成构造方法,那么构造方法是没有参数的

  • 构造方法中,可以通过this调用其他构造方法来简化代码

    • 例如:

          public int age;
          public int s;
          public TestFib(int age,int s){
              this.age=age;
              this.s=s;
          }
          public TestFib(){
              this(12,1);
          }
      ​

构造方法的初始化:

    public int age;
    public String name;
    public int s;
    public TestFib(){
        System.out.println(age);
        System.out.println(name);
        System.out.println(s);
    }
​
    public static void main(String[] args) {
        TestFib b=new TestFib();
​
    }
//输出:
//0
//null
//0
  • 未初始化的成员变量没有初始值,也可以创建,但是未初始化的变量创建会报错

    • 未初始化的成员变量的默认值

    • 数据类型默认值
      byte0
      char'\u0000'
      short0
      int0
      long0L
      booleanflase
      float0.0f
      double0.0
      referenccenull
  • 直接初始化

    在声明成员变量时,就直接给出了初始值

    public static Student{
        public String name="zhangsan";
        public int age=19;
    }

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

原文地址: http://outofmemory.cn/langs/2990304.html

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

发表评论

登录后才能评论

评论列表(0条)

保存