Monday, November 25, 2019
Time for JAVA #002 - constructor
Constructor is a block of code that initializes the newly created object. A constructor resembles an instance method in java but it’s not a method as it doesn’t have a return type.
This is how it looks like (the simplest declared constructor - no arg):
There are three types of constructors: Default, No-arg constructor and Parameterized.
1) If you do not implement any constructor in your class, Java compiler inserts a default constructor into your code on your behalf (it is invisible).
2) Constructor with no arguments is known as no-arg constructor. The signature is same as default constructor, however body can have any code unlike default constructor where the body of the constructor is empty.
3) Constructor with arguments(or you can say parameters) is known as Parameterized constructor.
Output will be:
Id: 00001 Name: Stalkerowaty
Id: 00002 Name: Stalkerowaty2
Although you may see some people claim that that default and no-arg constructor is same but in fact they are not, even if you write public Demo() { } in your class Demo it cannot be called default constructor since you have written the code of it.
Difference between Constructor and Method
The purpose of constructor is to initialize the object of a class while the purpose of a method is to perform a task by executing java code. Constructors cannot be abstract, final, static and synchronised while methods can be. Constructors do not have return types while methods do.
Quick Recap of all info:
1) Every class has a constructor whether it’s a normal class or a abstract class.
2) Constructors are not methods and they don’t have any return type.
3) Constructor name should match with class name.
4) Constructor can use any access specifier, they can be declared as private also. Private constructors are possible in java but there scope is within the class only.
5) Like constructors method can also have name same as class name, but still they have return type, though which we can identify them that they are methods not constructors.
6) If you don’t implement any constructor within the class, compiler will do it for.
7) this() and super() should be the first statement in the constructor code. If you don’t mention them, compiler does it for you accordingly.
8) Constructor overloading is possible but overriding is not possible. Which means we can have overloaded constructor in our class but we can’t override a constructor.
9) Constructors can not be inherited.
10) If Super class doesn’t have a no-arg(default) constructor then compiler would not insert a default constructor in child class as it does in normal scenario.
11) Interfaces do not have constructors.
12) Abstract class can have constructor and it gets invoked when a class, which implements interface, is instantiated. (i.e. object creation of concrete class).
13) A constructor can also invoke another constructor of the same class – By using this(). If you want to invoke a parameterized constructor then do it like this: this(parameter list).
Wednesday, November 6, 2019
Automation for JIRA #005 - How to set active link to @assignee in comment
The situation is like that:
There are two tasks. Task 1 and Task 2. Task 2 has a link set to "is blocked by" Task 1. Person who trasit Task 1 to status "Done" do not inform other person who is responsible for Task 2 (and can not work on it because it is blocked by Task 1).
I solved it with a simple automation:
What I could not find was a assignee name (but the active one) - there is a smart values like: {{assignee.displayName}} or {{assignee.key}} but those are displaying only the value. The correct instruction is [~accountid:{{assignee.accountId}}].
That displays like this:
There are two tasks. Task 1 and Task 2. Task 2 has a link set to "is blocked by" Task 1. Person who trasit Task 1 to status "Done" do not inform other person who is responsible for Task 2 (and can not work on it because it is blocked by Task 1).
I solved it with a simple automation:
What I could not find was a assignee name (but the active one) - there is a smart values like: {{assignee.displayName}} or {{assignee.key}} but those are displaying only the value. The correct instruction is [~accountid:{{assignee.accountId}}].
That displays like this:
Subscribe to:
Posts (Atom)