新手了解java 类,对象以及封装基础知识

 更新时间:2021年07月05日 17:25:26   作者:王星伟QAQ  
JS是一门面向对象语言,其对象是用prototype属性来模拟的,本文介绍了如何封装JS对象,具有一定的参考价值,下面跟着小编一起来看下吧,希望对你有所帮助

1、类

什么是类

​ 类是具备某些共同特征的实体的集合,是对所具有相同特征实体的抽象。

Java中定义类的基本语法

访问修饰符 class 类名{}

public class Student{
    //定义了一个学生类
}

成员变量

成员变量就是对象所拥有的属性

基本语法

访问修饰符 [可选修饰符] 数据类型 变量名称;

public class Student{
    //定义了一个学生类
    public int age;
    String name;
    protected long tel;
    private double a;
}

方法

放法可以用来描述对象动作

基本语法

访问修饰符 [可选修饰符] 数据类型 方法名称(参数列表){方法体};

public class Student{
    public void print(){
       System.out.print("方法") 
    }
    public int sum(int a, int b){
        return a + b;
    }
}

2、对象

什么是对象

对象就是类的实例

对象的创建

基本语法

类型 对象名称 = new 类型();

public class StudentTest{
    public static void main(String[] args){
        Student stu = new Student();
    }
}

3.方法的重载 什么是方法的重载

方法的重载就是在一个类当中存在多个同名的方法;

这些方法遵循以下规则

  • 方法名相同
  • 方法的参数列表不同
    • ​ 1)参数的个数不同
    • ​ 2)参数的类型不完全相同,包括数据类型以及数据类型的顺序
    • ​ 3)与参数名称无关
  • 与方法的返回值类型、访问修饰符无关
public class Student{
    /**
    *定义一个求和方法根据传入参数的值进行求和,并返回结果
    */
    public int sum(int a,int b){
        return a + b;
    }
    //参数的个数不同
    public int sum(int a,int b,int c){
        return a + b + c;
    }
    //参数列表的类型不同
    public int sum(int a,short b){
        return a + b;
    }
    //参数列表类型顺序不同
    public int sum(short a,int b){
        return a + b;
    }
}

4、构造器 什么是构造方法

  • 构造方法的结构和普通方法类似,但是和普通方法完全不同两个代码块;
  • 构造方法也是方法,意味着使用了构造方法,方法会执行,也能完成功能
  • 构造方法就是一个代码块【就是一个结构 ,构造方法和 字段 方法一样都是一个类中的成员之一
  • 构造方法也该存在于类的结构体中

构造方法语法:

  • 构造方法的名字和类名完全一致(包括大小写完全一致)
  • 没有返回值类型(void也不行)
  • 构造方法方法体不能返回任何的值(即不能在方法体中return 值)
  • 其他的和普通方法类似 ,可以有修饰符(public、protected、private、默认),可以有形参列表
  • 构造方法必须有方法体
  • 构造方法不能有任何非访问性质的修饰符修饰,例如 static、final、synchronized、abstract等都不能修饰构造方法。

注意new Student() 这个整体既是一个Student对象,又是调用的Student的无参数构造方法

构造方法特点

1.类中构造方法特点:

  • ① 每一个类中都至少有一个构造方法;
  • ② 如果没有看到(显示的),那么存在一个隐式的无参数的构造方法;
  • ③ 如果一个类中有显示的构造方法,那么隐式的无参的构造方法就不存在了;

构造方法的作用

在创建对象的同时给对象的成员变量赋值(初始化工作)

模板语法

public class 类名{
成员变量  (字段); 
构造方法(有参、无参);
方法 (具体的一个功能行为); 
}
public class Student{
    public String name;
    public int age;
    /**
    无参构造
    */
    public Student(){}
     /**
    有参构造
    */
    public Student(String name,int age){
    }
}

5.this this指代当前对象,即哪个对象调用就指代哪个对象

this****用途:

  • 解决局部变量和成员变量的二义性
  • 在本类之间 ,构造方法之间的相互调用 this()调用无参数的构造方法,this(…)可以添加参数,表示调用有参数的构造方法
  • this作为参数传递,this作为返回值
public class Student{
    public String name;
    public int age;
    /**
    无参构造
    */
    public Student(){}
     /**
    有参构造
    */
    public Student(String name,int age){
        this();//调用构造器,只能写在第一句
        this.name = name //调用属性
    }
}

6.封装

封装:指的是将类中不想被外界访问的成员私有化。

封装的作用

封装是为了保护内部数据的安全:

1.不希望在外部类中随意访问对象的成员变量

2.达到权限要求的才能访问

怎么封装

1.如何控制程序中的访问 ?

通过给类中的成员(字段,方法,构造方法)添加访问权限修饰符来实现封装(访问控制)

2.什么是访问权限:简单的认为访问权限就是不同级别的人能够干不同级别的事,不同级别的人能看到的页面是不同的

步骤

  • 1. 私有化成员变量(用private修饰成员变量)
  • 2. 为每一个成员变量提供合理的
    • **getXxx()**方法 获取成员变量的值,如果当前成员变量类型是boolean类型,将getXxx()改为 isXxx()
    • **setXxx(…)**方法 设置成员变量的值
  • 3. 提供一个无参构造,和全参的构造
  • 4. 该类用public修饰
public class Student{
    private String name;
    private int age;
    public String getName(){
       return this.name;
    }
    public void setName(String name){
        this.name = name;
    }
      public String getAge(){
       return this.age;
    }
    public void setAge(String age){
        this.age = age;
    }
}

总结

本篇文章就到这里了,希望可以给你提供帮助,也希望您能多多关注脚本之家的更多内容!

相关文章

  • 深入浅出讲解Spring框架中依赖注入与控制反转及应用

    深入浅出讲解Spring框架中依赖注入与控制反转及应用

    依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例
    2022-03-03
  • Spring Boot 整合持久层之Spring Data JPA

    Spring Boot 整合持久层之Spring Data JPA

    在介绍Spring Data JPA的时候,我们首先认识下Hibernate。Hibernate是数据访问解决技术的绝对霸主,使用O/R映射技术实现数据访问,O/R映射即将领域模型类和数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无须关注数据库相关的技术
    2022-08-08
  • Java设计模式之代理模式_动力节点Java学院整理

    Java设计模式之代理模式_动力节点Java学院整理

    这篇文章主要介绍了Java设计模式之代理模式,本文详细的介绍了什么事代理模式和相关的类和接口,有兴趣的可以了解一下
    2017-08-08
  • Java实现双色球抽奖随机算法示例

    Java实现双色球抽奖随机算法示例

    本篇文章主要介绍了Java实现双色球抽奖随机算法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • SpringBoot2.2.X用Freemarker出现404的解决

    SpringBoot2.2.X用Freemarker出现404的解决

    这篇文章主要介绍了SpringBoot2.2.X用Freemarker出现404的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • springboot+websocket实现并发抢红包功能

    springboot+websocket实现并发抢红包功能

    本文主要介绍了springboot+websocket实现并发抢红包功能,主要包含了4种步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 使用String转换到Map结构

    使用String转换到Map结构

    这篇文章主要介绍了使用String转换到Map结构,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java 8 中的 10 个特性总结及详解

    Java 8 中的 10 个特性总结及详解

    本主要介绍Java 8中的新特性,这里整理了相关资料并整理了10个特性,逐一介绍说明,有兴趣的朋友可以参考下
    2016-09-09
  • @Transactional注解:多个事务嵌套时,独立事务处理方式

    @Transactional注解:多个事务嵌套时,独立事务处理方式

    这篇文章主要介绍了@Transactional注解:多个事务嵌套时,独立事务处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • JAVA8独有的map遍历方式(非常好用)

    JAVA8独有的map遍历方式(非常好用)

    这篇文章主要介绍了JAVA8独有的map遍历方式(非常好用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论