精华内容
下载资源
问答
  • 构造方法和普通方法之间的区别

    千次阅读 2017-07-31 13:58:00
    构造方法的作用:在对类实例化时候对其中属性进行初始化,即初始化类中属性; 范例:简单java类范例 package com.javaxuexi.hu; class Emp{ private int empno; private String ename; ...

    构造方法在类实例化对象时候自动调用一次;

    普通方法是在类实例化对象之后可以进行多次调用;

    构造方法的作用:在对类实例化的时候对其中的属性进行初始化,即初始化类中的属性;

    范例:简单java类的范例

    package com.javaxuexi.hu;
    
    class Emp{
        private int empno;
        private String ename;
        private String job;
        private double sal;
        private double comm;
        public Emp(){}//类中至少保留一个构造方法;
        public Emp(int empno,String ename,String job,double sal,double comm){
            this.empno=empno;
            this.ename=ename;
            this.job=job;
            this.sal=sal;
            this.comm=comm;
        }
        public void setEmpno(int empno){
            this.empno=empno;//this.empno指的是本类中的empno属性;
        }
        public int getEmpno(){
            return this.empno;
        }
        public void setEname(String ename){
            this.ename=ename;
        }
        public String getEname(){
            return this.ename;
        }
        public void setJob(String job){
            this.job=job;
        }
        public String getJob(){
            return this.job;
        }
        public void setSal(double sal){
            this.sal=sal;
        }
        public double getSal(){
            return this.sal;
        }
        public void setComm(double comm){
            this.comm=comm;
        }
        public double getComm(){
            return this.comm;
        }
        public String toString(){
            return  "雇员编号:"+this.empno+"\n"+
                    "雇员姓名:"+this.ename+"\n"+
                    "雇员职位:"+this.job+"\n"+
                    "基本工资:" + this.sal+ "\n" +
                    "佣    金:"+this.comm;
        }
    }
    public class TestDemo{
        public static void main(String args[]){
            Emp e=new Emp(8888,"smith","后端开发",10000.0,5000.0);
            System.out.println(e);
        }
    }

     运行结果

    雇员编号:8888
    雇员姓名:smith
    雇员职位:后端开发
    基本工资:10000.0
    佣    金:5000.0
    

     如果想要取得某一个属性或者更改变某一个属性的值,可以调用对应的getter和setter方法;

    public class TestDemo{
        public static void main(String args[]){
            Emp e=new Emp(8888,"smith","后端开发",10000.0,5000.0);
            //如果某一个属性值需要改变,则可以调用setter方法进行改变
            e.setEmpno(1632);
            System.out.println(e.getComm());//取得comm属性的值
            System.out.println();
            System.out.println(e);
            
        }
    }

    运行结果

    5000.0
    
    雇员编号:1632
    雇员姓名:smith
    雇员职位:后端开发
    基本工资:10000.0
    

      

     

    转载于:https://www.cnblogs.com/hu1056043921/p/7262784.html

    展开全文
  • Java 构造方法和普通方法之间的区别1、构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。2、类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中...

    585707762fea2f648bbde30546d63284.png

    Java 构造方法和普通方法之间的区别

    1、构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

    2、类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。

    3、不能被static、final、synchronized、abstract和native修饰。

    4、构造方法在初始化对象时自动执行,一般不能显式地直接调用、当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。

    5、构造方法分为两种:无参构造方法 有参构造方法。

    无参的构造方法class person{

    public person(){

    System.out.println("无参的构造方法被调用了。。。");

    }

    }

    class Ex11{

    public static void main(String[] args){

    person p=new person();

    }

    }

    有参的构造方法(目的就是为了给对象实例变量赋值)class person{

    int age;

    public person(int a){

    age=a;

    }

    public void speak(){

    System.out.println("I am "+age+" years old");

    }

    }

    class Ex11{

    public static void main(String[] args){

    person p=new person();

    p.speak();

    }

    }

    展开全文
  • {类:指共性的概念,时生产对象的蓝图对象:类中一个具体的成员,对象之间的区别在于具体的属性值不同\begin{cases} 类:指共性的概念,时生产对象的蓝图\\ \\ 对象:类中一个具体的成员,对象之间的区别在于...

    首先,回顾一下类和对象的概念:类和对象

    在Java中,一切皆对象
    {\begin{cases} 类:指共性的概念,时生产对象的蓝图\\ \\ 对象:类中一个具体的成员,对象之间的区别在于具体的属性值不同& \end{cases}
    在这里插入图片描述
    所谓的构造方法就是使用关键字new实例化新对象时来进行调用的操作方法…

    构造方法遵循的原则:

    1. 方法名必须与类名称相同
    2. 构造方法没有返回类型声明
    3. 每一个类中一定至少存在一个构造方法(若没有明确定义,则系统会自动生成一个无参构造;若定义了构造方法,系统默认的无参构造将不再产生)

    构造方法的意义:用于类中属性的初始化

    无参的构造方法:
    无参的构造方法
    
    class person{
    
      public person(){
        System.out.println("无参的构造方法被调用了!");
      }
    
    }
    
    class Ex11{
    
      public static void main(String[] args){
    
         person p=new person();
    
      }
    
    }
    
    有参的构造方法(目的就是为了给对象实例变量赋值)
    class person{
    
      int age;
      public person(int a){
        age=a;
      }
    
      public void speak(){
        System.out.println("I am "+age+" years old");
      }
    }
    
    class Ex11{
    
      public static void main(String[] args){
    
        person p=new person();
    
        p.speak();
    
      }
    
    }
    

    问题:构造方法无返回值,为什么没有void声明?

    回答该问题前我们看看现在类中的组成:属性、构造方法、普通方法。

    • 1.属性是在对象开辟堆内存时开辟的空间
    • 2.构造方法是在使用new后调用的
    • 3.普通方法是在空间开辟了、构造方法执行之后可以多次调用的
      在这里插入图片描述
      因此,编译器是根据程序结构来区分普通方法与构造方法的,所以在构造方法前没有返回值类型声明

    若类中定义了构造方法,则默认的无参构造将不再生成

    使用构造方法设置对象属性

    class Person {
        private String name;
        private int age;
    
        public Person(String name,int age) {       //构造方法初始化属性
            this.name = name;
            setAge(age);
        }
    
        public void setName(String name) {
            this.name = name;
        }
        
        public String getName() {
            return name;
        }
    
    
        public void setAge(int age) {
            this.age = age;
        }
        
        public int getAge() {
            return age;
        }
        
        public void personInfo() {
            System.out.println("姓名:" + name + "年龄:" + age);
        }
    }
    
    public class Gouzao {
        public static void main(String[] args) {
            Person per = new Person("马QQ",18);
    //        Person per = new Perso();
    //        per.setName("马QQ");
    //        per.setAge(18);
            per.personInfo();
        }
    }
    
    

    构造方法重载

    参数的个数不同,初始化属性的个数不同

    public Person() {
    	System.out.println("===无参构造===");
    }
    
    public Person(String n)	{
    	name = n ;
    	System.out.println("===有参构造===");
    }
    

    建议:若干构造方法,请按照参数个数升序或降序
    在进行类定义时:①定义属性->②定义构造方法->③定义普通方法

    PS:最近学到了这一部分,对类、构造方法、普通方法的概念和用法有点迷,在此做个总结…
    在这里插入图片描述

    展开全文
  • 区别在于变量初始化方式决定了保存变量位置;>如果它具有相同相同初始化方法并...构造字符串有两种方法:通过赋值字符串文字或通过new运算符和构造函数显式创建String对象来进行隐式构造.例如String s...

    区别在于变量的初始化方式决定了保存变量的位置;

    >如果它具有相同的值和相同的初始化方法并使用new关键字初始化 – 它将保存在堆中并将每个变量保存为新对象,即使它具有相同的值.

    >如果它具有相同的值和相同的初始化方法并直接初始化 – 它将在JVM池化内存中引用它.

    构造字符串有两种方法:通过赋值字符串文字或通过new运算符和构造函数显式创建String对象来进行隐式构造.例如

    String s1 = "Hello"; // String literal

    String s2 = "Hello"; // String literal

    String s3 = s1; // same reference

    String s4 = new String("Hello"); // String object

    String s5 = new String("Hello"); // String object

    Java提供了一种特殊的机制来保持String文字 – 在一个所谓的字符串公共池中.如果两个字符串文字具有相同的内容,则它们将在公共池内共享相同的存储.采用这种方法来节省常用字符串的存储空间.另一方面,通过new运算符和构造函数创建的String对象保留在堆中.堆中的每个String对象都有自己的存储空间,就像任何其他对象一样.

    y4v6o.png

    s1 == s1; // true, same pointer

    s1 == s2; // true, s1 and s1 share storage in common pool

    s1 == s3; // true, s3 is assigned same pointer as s1

    s1.equals(s3); // true, same contents

    s1 == s4; // false, different pointers

    s1.equals(s4); // true, same contents

    s4 == s5; // false, different pointers in heap

    s4.equals(s5); // true, same contents

    重要笔记:

    >在上面的例子中,我使用关系相等运算符’==’来比较两个String对象的引用.这样做是为了演示在公共池中共享存储的字符串文字与在堆中创建的String对象之间的差异.在程序中使用(str1 == str2)来比较两个字符串的内容是一个逻辑错误.>可以通过直接分配在公共池中共享的字符串文字来创建字符串.这种情况并不常见,不建议使用new运算符在堆中构造String对象.

    展开全文
  • 普通类,抽象类接口之间的区别

    热门讨论 2020-01-30 18:06:21
    1. 普通类可以实例化,接口都不能被实例化(它没有构造方法),抽象类如果要实例化,抽象类必须指向实现所有抽象方法子类对象(抽象类可以直接实例化,直接重写自己抽象方法),接口必须指向实现所有所有接口方法类...
  • 普通函数ES6箭头函数除了this指向不同之外还有什么不同? A.箭头函数作为匿名函数,不能作为构造函数,不能使用new关键字 B.箭头函数不绑定arguments,用rest参数...解决 C.箭头函数会捕获其上下文this值,...
  • 抽象类接口之间的区别1.关键字 abstract class interface2.组成 构造方法,抽象方法,普通方法,static方法,常量变量 接口只有全局常量抽象方法3.子类的使用 class子类extends抽象类 class类实现多个...
  • 构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块//普通代码块:在方法或语句中出现{}就称为普通代码块。普通代码块一般语句执行顺序由他们在代码中出现次序决定--...
  • 关于构造函数,原型对象,实例之间的关系 ,先来看一张图,大致了解下1,构造函数构造函数跟普通函数没什么区别,都是由function定义的,为了和普通函数做区别,一般构造函数首字母大写像这样,构造函数可以使用new...
  • 1 返回值类型的区别 1、构造方法没有返回值类型且不能写void 2、普通方法有返回值也可以没有返回值,没有返回值类型时要写void 2 函数名称的区别 1、构造方法的名称必须要类名保持一致 2、普通方法的命名规则符合...
  • 接口中方法都是抽象方法,抽象类中可以有抽象方法,也可以有普通方法; 接口中只有常量,而抽象类中可以有常量也可以有普通变量; 接口可以实现多个接口,而抽象类是单继承; 接口中没有构造器,抽象类有构造器; 抽象类...
  • 构造函数:构造函数和普通函数并没有什么实质性的区别,都是函数; 原型对象:每个构造函数在声明的时候,系统会自动在内存中生成一个空对象,这个对象就是 原型对象 实例对象:构造函数通过new 方法 就会得到一个...
  • 项目中关于Entity、POJO、VO、DTO认识应用 ...POJO类中可以包含:属性/get/set/构造方法,不允许有业务逻辑代码 实际就是普通JavaBeans 3.什么是VO值对象? VO:Value Object值对象,用于封装 值、
  • 一、语法上的区别 抽象类是半抽象的 接口是完全抽象的 抽象类中有构造方法 ...接口中没有抽象方法 ...抽象类允许出现普通变量和普通方法 以后接口使用的比抽象类多 接口一般是对行为的抽象 ...
  • 目录1.前言2.抽象类2.1特性2.1.1...本文将介绍抽象类(abstract class)接口(interface)的特性两者之间的区别。 2.抽象类 2.1特性 2.1.1概念 有共同点之间的类与类进一步总结成抽象类,抽象类具有一些类之间共有的
  • 构造函数就是一个普通函数,创建方式和普通函数没有区别,不同构造函数习惯上首字母大写。另外就是调用方式不同,普通函数是直接调用,而构造函数需要使用new关键字来调用。 function后面的方法名Person...
  • No. 区别点 抽象类 接口 ... 包含一个抽象方法类 ... 抽象方法和全局常量集合 ... 构造方法、抽象方法、普通方法、常量、变量 常量、抽象方法...
  • 文章目录普通代码块构造代码块静态代码块同步代码块四者之间的作用和区别 Java语言中,代码块一般可分为四类:普通代码块,构造代码块,静态代码块,同步代码块。 普通代码块 普通代码块就是我们平常所说的方法中的...
  • 9.5 构造方法和普通方法之间的区别是什么?9.6 什么时候类将有一个默认构造方法?9.7 哪个操作符用于访问对象的数据域或者调用对象的方法?9.8 什么是匿名对象?9.9 什么是NullPointerException?9.10 数组是对象还是...
  • 9.5 构造方法和普通方法之间的区别是什么?9.6 什么时候类将有一个默认构造方法?9.7 哪个操作符用于访问对象的数据域或者调用对象的方法?9.8 什么是匿名对象?9.9 什么是NullPointerException?9.10 数组是对象还是...
  • 9.5 构造方法和普通方法之间的区别是什么?9.6 什么时候类将有一个默认构造方法?9.7 哪个操作符用于访问对象的数据域或者调用对象的方法?9.8 什么是匿名对象?9.9 什么是NullPointerException?9.10 数组是对象还是...
  • 抽象类与接口的区别

    2020-04-27 14:44:17
    抽象类中有构造方法(他的构造方法是给子类用) 接口中没有构造方法 接口接口之间支持多继承 类之间只能单继承\ 一个类可以同时实现多个接口 一个类只能继承一个抽象类 接口中只允许出现常量...
  • 但是两者仍有定义使用区别,下面是两者之间的一个比较: 抽象类接口的区别 NO 区别 抽象类 接口 1 定义 abstract class name{} interface name{} 2 组成 构造方法、抽象方法、...
  • 在本类之间,构造方法之间的相互调用 super用途: super表示超(父)类对象,this表示对象本身 super可用于访问父类的方法和属性,使用形式为super.方法(属性) 在类的继承中,子类的构造方法中默认会有super()...
  • 构造函数与析构函数

    2016-02-16 14:46:56
    每个类都具有构造函数析构函数。其中,构造函数在定义对象时被调用,析构函数在对象释放时被调用。如果用户没有提供构造函数析构函数,系统将提供默认的构造函数析构函数。...这是析构函数与普通函数最大的区别
  • 构造方法中则表示在本类中构造方法之间的相互调用。 super: 如果出现在构造方法中,表示子类调用父类的构造方法,其实super还可以引用父类的变量或者是普通方法 superthis在构造方法中只能出现在第一行 ...
  • 构造方法,抽象方法,普通方法,常量, 变量 常量,抽象方法 3 关系 抽象了可以使用多个接口 接口不能继承抽象类,但允许继承多个接口 4 使用 子类继承抽象类(extents) 子类实现接口
  •  原型对象实际上就是构造函数的一个实例对象,和普通的实例对象没有本质上的区别。可以包含特定类型的所有实例的共享属性或者方法。这样,如果我们需要修改所有实例中的属性或者方法,就只需要修改...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

构造方法和普通方法之间的区别