Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6604513
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T19:09:59+00:00 2026-05-25T19:09:59+00:00

E.g. import java.util.*; public class mainXX { public static void main(String args[]){ System.out.println(new Date());

  • 0

E.g.

import java.util.*;

public class mainXX {
    public static void main(String args[]){
    System.out.println(new Date());
    }
}

If I run this code I’m creating a new Date object but not calling any methods, it only calls the default constructor, which looks like this:

public Date() {
this(System.currentTimeMillis());
}

How does the System.out.println end up printing a string date (Tue Sep 27 12:04:42 EST 2011) from this declaration as a constructor can’t return a value?

I know this is a simple question but I can’t figure out what is happening. Thanks, m

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T19:10:00+00:00Added an answer on May 25, 2026 at 7:10 pm

    You are correct that constructors themselves do not return values, but the expression formed by applying the new operator to a constructor “call”, does produce a value.

    In other words new is an operator. The expression new C ( args ) invokes the constructor C on the given arguments. The result of the new expression is the newly constructed object. It is the new operator, not the constructor, that is producing the value. (I’m being technical and saying “producing” instead of “returning” because I think that is in the spirit of your question.)

    ADDENDUM

    By way of further explanation: Constructors, do not actually “return” objects the way methods do. For example:

    public class Point {
        private double x;
        private double y;
    
        public Point (double x, double y) {
            this.x = x;
            this.y = y;
        }
    
        public double getX() {return x;}
        public double getY() {return y;}
    
        @Override public String toString() {
            return "(" + x + "," + y + ")";
        }
    }
    

    The methods getX, getY, and toString return values, so when used in an expression like this

    p.getX()
    

    a value is returned.

    The constructor has no return statement. More importantly you don’t call it directly. That is you cannot say

    System.out.println(Point(1, 2));
    

    That would be an error. Instead, you use a “new-expression” which has the form new applied to the constructor name applied to an argument list. This invokes the constructor and produces a new object. For example:

    Point p = new Point(4, 3);
    

    The right hand side is a newly created point object. All I was pointing out is that nothing is returned from the constructor itself; you have to apply the new operator to get the point object.

    Because the new expression produces an object, we can apply methods directly to it. The following are all acceptable:

    new Point(4, 3)               // produces a point object
    
    new Point(4, 3).getX()        // produces 4
    
    new Point(4, 3).getY()        // produces 3
    
    new Point(4, 3).toString()    // produces "(4,3)"
    

    As other answerers have pointed out, in Java when you use an object in a context where a string is expected, the toString() method is automatically called. So

    System.out.println(new Point(4, 3))
    

    would actually print (4,3).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

import java.util.Scanner; public class Mal { public static void main(String[] args) { System.out.println(Welcome); Scanner
import java.util.*; public class oddNumbers { public static void main(String[] args) { System.out.println(enter two
import java.util.Scanner; public class Main extends Hashmap{ public static void main(String[] args) { Hashmap
import java.util.scanner; import javax.swing.JOptionPane; public class FirstHomeJavaApplet{ public static void main(String[] args){ int num1=2;
import java.io.*; import java.util.*; public class Sort { public static void main(String[] args) throws
import java.util.*; public class Test { public static void main(String[] args) { Map<String,String> map
import java.util.ArrayList; public class WTFAMIDOINGWRONG { public static void main(String[] args) { ArrayList<Integer> intsAR
import java.util.Scanner; import java.lang.String; public class Test { public static void main(String[] args) {
import java.util.*; public class Guess { public static void main (String[] args) { final
import java.util.*; public class MyClass { public static void main(String[] args) { List<String> a

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.