Java基础之类与对象

前言

  • 本文章适合初学者进行详细的学习,内容都是java必备掌握的知识点
  • 文章内容并没有太深、但知识点丰富

1、面向对象的特点

  • 封装性:将数据和对数据操作封装在一起,可以保护我们的数据。
  • 继承型:子类继承父类,拥有了父类的能力基础上完善自己。
  • 多态性:同一操作被不同类型对象调用产生不同效果

2、类体

2.1类的声明

  • 见名知意
  • 首字母大写
  • 驼峰风格 StudyJava、WakeUp等等

2.2成员变量

  • 类中有成员变量和方法
  • 成员变量的类型:整型、浮点型、字符型、逻辑类型、**引用类型:**数组、对象和接口
  • 成员变量有默认值而局部变量却没有默认值(所以我们在使用局部变量时,要给定具体的值,局部变量可以使用var)

2.3变量和方法声明

  • 变量和方法声明规则相同
  • 第二个单词的首字母大写
  • 见名知意
  • studyJava、getSum等等

3、类之间的关系

  • 依赖(“uses-a”):一个类的方法 操作 另一个类的对象
public class A {
    public void uses_a(C e) {
        //C类是A类方法中的参数
    }
}
class C {
}
  • 聚合(“has-a”):类A的对象 包含 类B的对象
class student {
}
class school { //一个学校多个学生 一个学生一个学校
    student A;
    student B;
}
  • 继承(“is-a”):
public class A extends C{
    public static void main(String[] args) {
        A a = new A(); //A继承了C   A可以调用C中的方法与成员变量
        a.is_a();
    }
}
class C {
    public void is_a() {
    }
}

4、构造方法

  • Java中有默认的无参构造,Student类中就有
class Student{
    Student(){ //无参数的构造方法。不写也默认有
    }

    int A;
    Student(int a){//一旦有 有参构造,则不在默认拥有无参构造
        A = a;
    }
}
  • 参数构造方法是和类名相同的
  • 并且没有任何的返回值类型
  • 每个类可以有一个以上构造器
  • 参数不限、总是伴随着new操作符一起调用
  • 常常用来给成员变量初始化使用

5、创建对象

5.1对象的声明

  • 类的名字 + 对象的名字;
  • Student stu;这个时候只是声明了一个对象,并没有给它引用,这是一个空对象我们无法使用
  • 使用了空对象则会出现NullPointerException异常

5.2new操作符的作用

  • new Student();在我们new了一个引用后,我们将得到一个地址,我们拿着这个得到的地址。
  • 去给我们刚刚声明的对象,这样这个对象才真正的产生了!!!
  • Student stu = new Student();
    ##5.3垃圾回收机制
  • Java中所谓的辣鸡回收机制就是,如果一个对象(实体)不在被任何对象引用,则将它释放内存。

6、final、static、this关键字

6.1final

  • final:最终的
  • ①final可以用来修饰的结构:类、方法、变量
  • ②不能被其他类继承
  • ③表示此方法不能被重写
  • ④final修饰一个属性,就是一个常量
  • 就是不可变的,String类具有不可变性,所以就用final修饰

6.2static:静态的

  • ①可以通过(类.静态变量)的方式进行调用
  • ②static可以用来修饰:属性、方法、代码块、内部类
  • ③使用static修饰属性:静态变量(类变量、共享)
  • ④statci修饰的是大家共同拥有的,缺点就是谁都可以改变这个值
  • ⑤随着类的加载而加载,虽然加载的很快,但是会导致浪费资源问题。
  • Math.random()就是用static修饰的,不然我们需要先new 一个对象 然后再调用random()方法
  • 通过类名直接调用方法

6.3this字段作用

  • this()通常在构造器中第一句使用,可以调用父类的构造方法。具体如何使用待学完继承后详细讲解
class Father {
    String name;
    int age;
    public Father(String name,int age) {
        this.name = name;//Java中通常通过this来区分方法体内传来的参数和本身类中的参数
        this.age = age; //this指的是本类中的实例字段,而不是传进来的值
                        //使用this可以使我们的程序更加清晰,当然你不用也没错!
    }
}

7、方法参数

  • 学过C语言的小伙伴都会认为方法的传参有两种情况:值传递和引用传递
  • 同时也发现这个在Java中也非常适用,所以就觉得Java也是分为这两种情况
为了误导大家,我特意举个例子
public class A{
    public static void main(String[] args) {
        B test2 = new B(20);
        test2.swap(test2); //我们调用这个swap()方法,将对象test2传进入,最终我们的年龄从20变成了30
//但是虽然我们传的是引用,但是引用的实质就是它的地址值,其实说白了我们还是在传值操作
//下面我给大家举个反例
        System.out.println(test2.age);
    }
}
class B {
    int age;
    public void swap(B c) {
        c.setAge(30);
    }
    public B(int age) {
        this.age = age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
  • 反例
public class A{
    public static void main(String[] args) {
        People zs = new People("张三", 10);//这里我new了两个对象实体zs和ls
        People ls = new People("李四", 20);
        ls.swap(zs,ls);//此时ls想和zs交换身份,所以就把他们的引用传了过去
        System.out.println(zs);//最终输出还是[张三,10],ls的愿望没有达成
                    //由此可以证明我们传递的是两个对象的地址值,而并非真正的引用。
    }
}
class People {
    String name;
    int age;

    public People() {
    }

    public void swap(People a, People b) {
        People temp = null;
        temp = a;
        a = b;
        b = temp;
    }
    public People(String name,int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "People{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
  • 那么小伙伴们可能会问了,那第一种情况为什么可以改变呢???
  • 因为第一种情况,我们改变的是这个对象的状态,虽然我们仍然传的是地址值,但是我们在方法体内将此对象的状态改变啦,大家可以多看看认真思考一下、反复推敲。

  • 一定要记住Java中没有引用传递,只有值传递。

8、方法重写与重载

8.1面试题:重写和重载有什么区别???

话说他俩除了名字差个字以外,其他不是一个概念,下面来带大家了解二者分别是什么

8.2重载

  • 重载的特点:
  1. 两个方法的参数个数不同
  2. 两个方法的参数类型不同
  3. 不考虑返回值类型
  4. 两个方法名字相同
    //方法重载
    public void t1(int a,double b){
    }
    public String t1(String a,double b){
    }
  • 构造器也有很多重载

8.3重写

  • 重写的特点:
  1. 子类继承了父类的方法
  2. 将父类的方法重新修改其中的功能。(修改方法体内)
  3. 相当于拥有了父亲的方法,在父亲方法中完善自我。
class Son extends Father{
    public void run() {//儿子重写了父亲的run()功能
        System.out.println("爸爸虽然我跑,但是我跑的更快");
    }
}
class Father {
    public void run() {
        System.out.println("爸爸会跑");
    }
}

9、导包

1.我们常用的包有:

  • java.lang包含所有的基本语言类
  • java.io包含所有的输入/输出类
  • java.util包含实用类
  • java.sql包含操作数据库的类
  • java.net包含所有实现网络功能的类
    2.导入一个包要用import
  • eg:import java.util.Scanner;
  • 可以使用通配符“*”,表示导入包中所有类
  • eg:import java.sql.*;

10、四种访问权限

11、基本类型封装和对象数组

11.1基本类型封装

  • Java中基本数据类型包括:boolean、byte、short、char、int、long、float和double
  • 同时将他们变成对象的形式Byte、Integer、Short、Long、Float、Double和Character
  • 在后面的学习我们能够使用上。这里就简单介绍一下
  • 并且Java中有自动装箱和拆箱,其实用起来非常方便。

11.2对象数组

  • 和普通数组一样其实很简单
  • Student stu1,stu2,stu3,stu4,stu5;像这种情况我们要声明多个对象时可以使用对象数组
  • Student[] stu = new Student[10];
  • stu[0] = new Student();

12、结尾

  • 对于类与对象的内容就总结这么多,希望大家可以多多练习。如果有不足之处,希望大家多多包涵,多多支持。如果有不懂的地方可以直接私信问我,欢迎来访!
  • 我将会继续更新关于Java的学习知识,感兴趣的小伙伴可以关注一下。
  • 文章写得比较走心,用了很长时间,绝对不是copy过来的!
  • 尊重每一位学习知识的人,同时也尊重每一位分享知识的人。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java类与对象Java语言的核心概念之一,理解它们对于Java编程非常重要。以下是一些Java类与对象的知识点: 1. 类是对象的模板,对象是类的实例。 2. 类可以包含属性(变量)和方法(函数)。 3. 类的属性可以是基本类型或对象类型。 4. 类的方法可以是静态的或实例的。 5. 实例变量和方法可以通过对象访问。 6. 静态变量和方法可以通过类名访问。 7. 构造函数是用来创建对象的特殊方法。 8. 类可以继承其他类,从而获得父类的属性和方法。 9. 继承可以实现代码重用和多态性。 10. 接口是一种类似于抽象类的结构,它定义了一组方法,但没有实现。 11. 实现接口的类必须实现接口定义的所有方法。 12. 包是一种组织代码的方式,它可以避免命名冲突。 13. 访问修饰符(public、protected、private)用于限制类、属性和方法的访问范围。 14. Java提供了垃圾回收机制,自动回收不再使用的对象。 15. 对象的生命周期由它们的引用决定,当没有引用指向对象时,它们会被垃圾回收器回收。 以上是Java类与对象的一些基本知识点,希望能对你有所帮助。 ### 回答2: Java类是面向对象编程的基本概念之一。一个类是一个模板或蓝图,用于创建具有相同属性和方法的对象。类由属性(变量)和方法组成。 对象是类的实例化。通过使用new关键字,我们可以创建一个对象并引用它。对象包含类定义的属性的具体值。可以通过调用对象的方法来操作和访问对象的属性。 类和对象Java编程中非常重要。它们可以帮助我们模拟真实世界中的问题和实体。以下是一些关于Java类和对象的重要知识点: 1. 类的声明:在Java中,通过使用关键字class可以声明一个类。类的声明包含类的名称和类体。 2. 对象的创建:要创建一个对象,我们使用new关键字并调用类的构造方法。构造方法被用来初始化对象的属性。 3. 属性和方法:类由属性和方法组成。属性是类的特征和数据的容器,而方法是用于操作和访问属性的行为。 4. 封装:Java类支持数据封装。通过将属性声明为私有,并提供公共的get和set方法,可以保护属性,从而实现数据封装。 5. 继承:继承是面向对象编程中的一种重要概念。通过继承,一个类可以从另一个类获得属性和方法。Java支持单继承,一个类只能继承另一个类。 6. 多态:多态是指一个对象可以具有多个形式。在Java中,多态性是通过继承和方法重写实现的。 7. 构造方法:构造方法是类的一个特殊方法。它用于创建和初始化对象。 8. this关键字:this关键字用于引用当前对象的属性和方法。 9. static关键字:static关键字用于修饰类的成员。静态成员被共享,可以在不创建对象的情况下访问。 10. 包:包用于组织和管理类,防止命名冲突。 这些是Java类和对象的一些重要知识点。理解和掌握这些知识点可以帮助我们在Java编程中更好地使用类和对象,并能够设计和实现复杂的应用程序。 ### 回答3: Java类是一种面向对象编程的基本概念。它是用来描述现实世界中具有相同特征和行为的对象的模板。在Java中,类可以看作是创建对象的蓝图或者是对象的抽象。类包含了对象的属性和方法,通过创建类的实例,可以实现对这些属性和方法的访问。 类的属性是描述对象特征的变量,也叫做成员变量。可以用来表示对象的状态。类的方法是用来描述对象行为的函数,也叫做成员函数。可以用来表示对象的行为。类可以有多个属性和方法,通过类的实例化可以创建多个对象对象是类的实例,也就是通过类创建的具体个体。对象具备了类的特性,可以访问类的属性和方法。可以通过new关键字来创建对象,并调用对象的方法。对象可以独立存在,可以具有独立的状态和行为。 类和对象是面向对象编程中的核心概念,它们是实现封装、继承和多态的基础。封装是将对象的属性和行为封装在类中,通过控制访问权限来实现对象的信息隐藏。继承是通过继承一个父类来创建一个新的类,并继承父类的属性和方法。多态是指一个类的实例可以以多种形式来使用,通过继承和实现接口来实现多态。 了解和掌握类和对象的知识点对于Java编程非常重要。它是面向对象编程的基础,可以帮助我们更好地理解和设计程序,提高代码的可维护性和可扩展性。掌握类和对象的知识点,也是进一步学习Java的面向对象特性和高级编程技术的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值