前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java——类与对象

Java——类与对象

原创
作者头像
用户11453640
发布2025-01-17 21:43:00
发布2025-01-17 21:43:00
780
举报
文章被收录于专栏:JavaJava

一、类和对象的概念

1.类和对象有什么区别呢?

类是同类对象的的一概括性的描述。

类是抽象的概念,是创建对象的模板。

类是一种数据类型;是开发人员为解决问题而定义的。

对象是一个你能够看得到、摸得着的具体实体

类是对象的抽象,对象是类的具体

2.定义一个类的步骤

(1)、定义类名

(2)、编写类的属性

(3)、编写类的方法

例:

代码语言:txt
复制
public class Student{
        int  stuNO;//学生学号       -------属性(成员变量)
        String stuName;//学生姓名
        
        public void study(){
             System.out.println("正在学习中,请勿打扰。。。。");
        }
        public void play(){
             System.out.println("正在玩耍中,看我操作!!!!");
        }
   }

3.对象(实例 instance)的创建和使用

(1)、创建对象使用new关键字调用类的构造方法

Student student = new Student();

(2)、使用反射创建对象

<1>Class.forName("com.example.Student"),参数为类的全限定路径。

<2>Student.class(),使用类的class方法获取一个实例。

<3>使用具体对象的getClass()方法获取实例。

4.类的构造方法(构造器)

(1)、什么是构造方法

构造方法负责对象属性进行初始化工作,为实例变量赋予合适的初始值,用来描述对象的创建过程。每个类都有一个构造方法,如果认为定义构造方法,那么类就会有显式的构造方法,如果未定义构造方法,那么类会默认一个无参数的构造方法。

(2)、构造方法必须满足以下语法规则

<1>构造方法名必须与类名相同

<2>没有任何的返回类型,连void也不返回

注: 构造方法是由JVM调用使用的

(3)、带参数的构造方法

•通过带参数的构造方法,显式地为实例变量赋予初始值

•可以给一个类添加多个版本的构造函数,每个版本的构造函数必须要参数的个数不同或参数的类型不同

•构造方法除了给属性赋值还可根据需要写其它代码,一个构造方法内也可以调用另一个构造方法

5.this关键字

this理解为当前对象的另一个名字,代表对当前对象的一个引用。

注:this是不能在static修饰的方法中使用

this()调用其他构造方法必须是第一句

代码语言:txt
复制
public class Teacher{
    public Teacher(String name,String sex,int age){
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    
    public Teacher(int i,string n ,string s){
        this(s,n,i);
    }
}

6.代码块和静态方法

代码语言:txt
复制
public class Student{
        int  stuNO;//学生学号       -------属性(成员变量)
        String stuName;//学生姓名
        
        {
             System.out.println("普通代码块。。。。");
        }
        
        static {
             System.out.println("静态代码块。。。。");
        }
        
        public void study(){     //普通方法
             System.out.println("正在学习中,请勿打扰。。。。");
        }
        public static void play(){  //静态方法
             System.out.println("正在玩耍中,看我操作!!!!");
        }
   }

2.静态代码块和动态代码块的区别:

(1)静态代码块有static关键字,而动态代码块没有

(2)执行顺序 类在初始化时就会执行静态代码块,动态代码块在对象创建的时候才会执行,且位置靠上的先执行。

(3)当使用类创建多个对象时,静态代码块只会被执行一次,而动态代码块会在每次创建对象都会被执行一次

3.静态方法和普通方法的区别:

(1)调用方式

‌ 静态方法‌:可以通过类名直接调用,也可以通过对象名调用。例如:ClassName.methodName()

或 object.methodName()。‌

‌ 普通方法‌:必须通过对象引用调用。例如:object.methodName()

(2)内存分配

‌ 静态方法‌:在类加载时分配内存,属于类级别。静态方法和静态成员变量在类加载时被分配内存。‌

‌ 普通方法‌:在每次创建对象时分配内存,属于对象级别。

(3)访问权限

‌ 静态方法‌:只能访问静态成员变量和其他静态方法,不能访问非静态成员变量和非静态方法。

‌ 普通方法‌:可以访问所有成员变量和方法,包括静态和非静态的。

(4)重写和隐藏行为

‌ 静态方法‌:由于静态方法属于类级别,不能被重写(override)。尝试在子类中重写父类的静态方法会导致编译错误。

‌ 普通方法‌:可以被重写(override)和重载(overload)在子类中重新定义与父类中同名同参数表的方法。‌

7.方法重载

同一个类中,有两个或两个以上的方法,它们方法名相同,参数列表不同,在这种情况下,该方法就被称为重载(overload)。其中参数列表不同包括以下三种情形:

–参数的数量不同

–参数的类型不同(注意有些类型可以自动转换)

–参数的顺序不同

代码语言:txt
复制
public class Student{
        
        public void study(int i , double d){    
             System.out.println("正在学习中,请勿打扰。。。。");
        }
        public void study(double d, int i){  
             System.out.println("正在玩耍中,看我操作!!!!");
        }
        //study(3,3.5);不会报错,因为double不能自动转化为int,所以会调用 study(double d, int i)这个方法
        //study(3,3);//报错,不知道调用那个study(),int会自动转化为double。
   }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、类和对象的概念
    • 1.类和对象有什么区别呢?
    • 2.定义一个类的步骤
    • 3.对象(实例 instance)的创建和使用
    • 4.类的构造方法(构造器)
    • 5.this关键字
    • 6.代码块和静态方法
    • 7.方法重载
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档