<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vasudevan Tamilarasan</title>
    <description>The latest articles on DEV Community by Vasudevan Tamilarasan (@vasutamil19).</description>
    <link>https://dev.to/vasutamil19</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2861142%2Fc2265735-9c59-4efc-9de6-20e5400b0cb0.png</url>
      <title>DEV Community: Vasudevan Tamilarasan</title>
      <link>https://dev.to/vasutamil19</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vasutamil19"/>
    <language>en</language>
    <item>
      <title>Java Checked Exception.</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Mon, 25 Aug 2025 18:28:30 +0000</pubDate>
      <link>https://dev.to/vasutamil19/java-checked-exception-174</link>
      <guid>https://dev.to/vasutamil19/java-checked-exception-174</guid>
      <description>&lt;p&gt;Hello friends! Today I attend an interview for a Java developer position(Fresher). The Interview person ask me a question: What is Checked Exception &amp;amp; Un-checked Exception. I replied 'Exceptions that are checked during the compilation time itself are called Checked exception, If they shouldn't, compiler will throw Compile time error. e.g) FileNotFoundException, SQLException, etc..'.&lt;/p&gt;

&lt;p&gt;I thought it would be the correct answer, but the interviewer again asks me why the compiler throws the error, how the compiler knows the exception will arise, because the Exception arise at Runtime.&lt;/p&gt;

&lt;p&gt;I said, Sorry sir, i don't know. Then he replied with the correct answer. He said 'If you create an object for a class which &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"throws any Exception during the Constructor invocation" or "If you call a method from that class which throws any Exception"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you need to catch them or again you put the "throws" statement in your constructor or method. In this way you need to catch them before runtime. Hence they are called Checked Exception.&lt;/p&gt;

&lt;p&gt;At starting, I didn't know the answer, but he taught me with an actual reason.&lt;/p&gt;

&lt;p&gt;I know this is a simple topic but i forgot to cover this in preparation.&lt;/p&gt;

&lt;p&gt;Don't you forget guys.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class CheckedExceptionParent{
       // this class throws an Exception at constructor invocation.
    public CheckedExceptionParent() throws Exception{
        throw new Exception("Exception from parent.");
    }
}

public class CheckedExceptionsDemo {

    public static void main(String[] args) {    
        CheckedExceptionParent demo = new CheckedExceptionParent(); // this line throws compile time error.
//hence we must enclose this with try-catch or else declare throws statement.
    }

}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>java</category>
      <category>programming</category>
      <category>discuss</category>
      <category>learning</category>
    </item>
    <item>
      <title>Interface &amp; Class</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Fri, 02 May 2025 14:08:26 +0000</pubDate>
      <link>https://dev.to/vasutamil19/interface-class-gol</link>
      <guid>https://dev.to/vasutamil19/interface-class-gol</guid>
      <description>&lt;p&gt;Hello guys!&lt;/p&gt;

&lt;p&gt;Interface &amp;amp; Class -&amp;gt; two important and basic pillars of object-oriented programming.&lt;/p&gt;

&lt;p&gt;Let's learn these concepts through a story!&lt;/p&gt;

&lt;p&gt;Note: I read this story in AI chat, but I converted it into my style for better understanding.&lt;/p&gt;

&lt;p&gt;In a village, a male chef in a house was trying to make a pizza at the demand of his sister. &lt;/p&gt;

&lt;p&gt;But he is not a professional; he learned all of these cooking stuff from his friends and by self-trying sometimes. So he didn't know how to cook a variety of dishes.&lt;/p&gt;

&lt;p&gt;He knew only some of the ingredients but not the entire process.&lt;/p&gt;

&lt;p&gt;He found a book in his house that was written by a famous professional chef. The book contained the making steps for pizza.&lt;/p&gt;

&lt;p&gt;But one thing: the book only tells him the steps, not the actual procedures for each step. They leave it in his hands, like:&lt;/p&gt;

&lt;p&gt;For pizza,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;make_crust()&lt;/li&gt;
&lt;li&gt;put_toppings()&lt;/li&gt;
&lt;li&gt;put_in_oven()&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the steps available in that book, so now he knows the steps to make a pizza, but the actual thing for each step lies in his hands. Then he started making pizza by following the steps.&lt;br&gt;
The chef implements the Pizza_Making_book with the steps said in that book.&lt;/p&gt;

&lt;p&gt;make_crust() -&amp;gt; he makes the crust with bread flour and with some yeast and sugar, like a plain bread.&lt;/p&gt;

&lt;p&gt;Note: this is not the only way to do make_crust() for pizza. For this reason, the manual only tells him the steps, not the actual ingredients, because it varies based on the chef's taste.&lt;/p&gt;

&lt;p&gt;After he makes the crust, he puts the toppings (put_toppings()) on it, like tomato, capsicum, onion, and some sweet things.&lt;/p&gt;

&lt;p&gt;Also, these toppings are not mentioned in that book, because they also depend upon the chef.&lt;br&gt;
Finally, he follows the manual and puts the pizza into the (put_in_oven()) microwave oven; hence, it can be baked well.&lt;br&gt;
He makes the pizza and serves it to his sister.&lt;/p&gt;

&lt;p&gt;From the above story, we can understand interfaces &amp;amp; classes.&lt;/p&gt;

&lt;p&gt;The Manual containing Pizza making steps is the Interface.&lt;br&gt;
The chef, who follows the manual, can be the class in programming.&lt;/p&gt;

&lt;p&gt;An Interface is a set of rules or a contract-like thing.&lt;br&gt;
It doesn't define the rules or give any definition to the rules, like the pizza manual. The actual responsibility for making the definition belongs to the class, like the chef.&lt;br&gt;
You may ask, why doesn't the interface define the rules?&lt;/p&gt;

&lt;p&gt;Because, it is like an index page of the actual code or logic behind that. The class is the logical member of the application. &lt;br&gt;
An Object is the Real entity that runs the application.&lt;/p&gt;

&lt;p&gt;So, making the rules in one place, like the interface, makes the code become more modular and more readable.&lt;br&gt;
It is also used to group the logical ideas that belong to the same flavor.&lt;/p&gt;

&lt;p&gt;Different pizza chefs follow the pizza manual. So, the pizza manual becomes the common one for all the chefs who make the pizza.&lt;/p&gt;

&lt;p&gt;I think you can understand this thing.&lt;/p&gt;

&lt;p&gt;Interface tells &lt;strong&gt;WHAT&lt;/strong&gt; needs to be done!&lt;/p&gt;

&lt;p&gt;Classes tell &lt;strong&gt;HOW&lt;/strong&gt; they are done!&lt;/p&gt;

&lt;p&gt;Objects are the &lt;strong&gt;ENTITIES&lt;/strong&gt; that follow the entire structure and behave like a representative for the logical idea.&lt;/p&gt;

&lt;p&gt;That's it guys, hope you all understand these points. If you have any queries, put them in the comments.&lt;br&gt;
-End-&lt;/p&gt;

</description>
      <category>java</category>
      <category>classes</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>GIT Contribution Tracker</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Fri, 02 May 2025 09:26:29 +0000</pubDate>
      <link>https://dev.to/vasutamil19/git-contribution-tracker-375j</link>
      <guid>https://dev.to/vasutamil19/git-contribution-tracker-375j</guid>
      <description>&lt;p&gt;Project: Git Contribution Tracker&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezw7uzmrv84ha4hlj2ef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fezw7uzmrv84ha4hlj2ef.png" alt="git" width="128" height="128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tech Stack Used:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Java
Maven
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Dependencies:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Apache POI
Google gson
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;External API's:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Gitlab API
Telegram API
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Project Description:&lt;/p&gt;

&lt;p&gt;This project can be able to find out the contributions made by a specifice user or a group of users.&lt;/p&gt;

&lt;p&gt;We built this project for our institution to track the trainee's contribution count on gitlab.&lt;/p&gt;

&lt;p&gt;Inputs: &lt;/p&gt;

&lt;p&gt;An Excel File that contains,&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+---------------+---------------+
|Personal Access| Gitlab        |
|     token     | username      |
+---------------+---------------+
| asdas-asd-as23| example_234   |
+---------------+---------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This order is important.&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+---------------+---------------+-----------------+
|Personal Access| Gitlab        |                 |
|     token     | username      | 24-April-2025   |
+---------------+---------------+-----------------+
| asdas-asd-as23| example_234   | 2 Contributions |
+---------------+---------------+-----------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;and also the contributions count for each person in the excel file will be send to the telegram group via bot.&lt;/p&gt;

&lt;p&gt;Project flow:&lt;/p&gt;

&lt;p&gt;Three class are coded in this project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GetUserProjects.&lt;/li&gt;
&lt;li&gt;Excelsample&lt;/li&gt;
&lt;li&gt;TelegramIntegration&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write to the excel file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GetUserProjects.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is starting point of this project which contains main(String[] args) method.&lt;/p&gt;

&lt;p&gt;First of all it creates a object for Excelsample class &amp;amp; invoke the readfile() method.&lt;/p&gt;

&lt;p&gt;Thus method prompts the user to enter the filepath(excel file contains user gitlab info).&lt;/p&gt;

&lt;p&gt;After the user input it tries to open the file from the path, if its not found it will throws and an Exception called FileNotFoundException.&lt;/p&gt;

&lt;p&gt;If it is present, then it collects the user info in the nested arrayList like [["asd-asd-we2", "example2-32"],].&lt;/p&gt;

&lt;p&gt;Then it returns the list to the main method. Main starts to iterate over the list and make an HTTP request on every iterations to get the user events on gitlab through GITLAB API.&lt;/p&gt;

&lt;p&gt;HTTP Client, HTTP Request, HTTP Response are the class plays the role of API between gitab and our project.&lt;/p&gt;

&lt;p&gt;Once the loop was ended we had all the user contribution info and write it to the excel file with today date.&lt;/p&gt;

&lt;p&gt;And It sends the info to a telegram channel through a telegram bot.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Excelsample.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It contains all the logic to read &amp;amp; write an excel file.&lt;/p&gt;

&lt;p&gt;import org.apache.poi.xssf.usermodel.XSSFWorkbook;&lt;br&gt;
import org.apache.poi.xssf.usermodel.XSSFSheet;&lt;br&gt;
import org.apache.poi.xssf.usermodel.XSSFRow;&lt;br&gt;
import org.apache.poi.xssf.usermodel.XSSFCell;&lt;/p&gt;

&lt;p&gt;These are all the classes we had used to read &amp;amp; write to the excel file.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;TelegramIntegration.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This class contains code for connecting the telegram bot with out project.&lt;/p&gt;

&lt;p&gt;Basically it is HTTP Request with query params &amp;amp; values to &lt;a href="https://api.telegram.org/" rel="noopener noreferrer"&gt;https://api.telegram.org/&lt;/a&gt; endpoint .&lt;/p&gt;

&lt;p&gt;Gitlab Repo link : &lt;a href="https://gitlab.com/vasudevan-repo/gitlab/-/tree/main/GitAutomation/src/main/java/main/GitAutomation?ref_type=heads" rel="noopener noreferrer"&gt;https://gitlab.com/vasudevan-repo/gitlab/-/tree/main/GitAutomation/src/main/java/main/GitAutomation?ref_type=heads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you note any issue or improvements in our code, Please reach to us, it helps us lot !&lt;/p&gt;

</description>
      <category>git</category>
      <category>opensource</category>
      <category>tracker</category>
      <category>programming</category>
    </item>
    <item>
      <title>Git Contributions Tracker</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Sat, 26 Apr 2025 06:53:11 +0000</pubDate>
      <link>https://dev.to/vasutamil19/git-contributions-tracker-2b7c</link>
      <guid>https://dev.to/vasutamil19/git-contributions-tracker-2b7c</guid>
      <description>&lt;p&gt;Git Contribution tracking.&lt;/p&gt;

&lt;p&gt;We are a group of students in our batch in Payilagam Institute, a person who is responsible for monitoring the contributions made on gitlab on a daily basis,&lt;br&gt;
it was a repetitive process, and every weak each person in the batch need to take this work as responsibility.&lt;/p&gt;

&lt;p&gt;Our trainer says don't you think this is a repetitive process and you guys take any steps to make an automotive process for this procedure. We say no and even we are not think of it until he asks us!&lt;/p&gt;

&lt;p&gt;After his words, we started a project called Git Contribution Tracker. With this project we are try to automate this process and make the tracking on a daily basis.&lt;/p&gt;

&lt;p&gt;We are currently learning Java and we are not know that much in java. With the help of internet and chatbot's like chatgpt, deepseek we understand what we are going to do.&lt;/p&gt;

&lt;p&gt;We are group of peoples and started coding on java to make the project successful.In this area we are about to know what is dependency in project making?&lt;/p&gt;

&lt;p&gt;Dependency:&lt;br&gt;
    It is external source file or even a small piece of code that are helps us to make some specific functionalities. Is this a needy one? Yes! we actually need it when it comes to do various things, most of the must needed things are comes built in with the language pack itself, other than that we need external package or a external code to perform some works.&lt;/p&gt;

&lt;p&gt;Our Dependencies in out project is :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Apache POI  (for reading and writing excel files in our project)
2. JSON for extracting the json content from a string.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We are currently try to make a tracking system for Gitlab.&lt;br&gt;
So we use Gitlab API to get the details.&lt;/p&gt;

&lt;p&gt;Step-by-Step Process:&lt;/p&gt;

&lt;p&gt;Step 1: Make an excel file with Gitlab PAT and each person's username.&lt;br&gt;
Step 2: Read the excel file through Apache POI(classname = XSSFWorkBook).&lt;br&gt;
Step 3: Read the data and convert to a List of Strings.&lt;br&gt;
Step 4: Iterate over the list to get each item of the list and make a HTTP request to the gitlab server with PAT in the authorization header(PAT must needed).&lt;br&gt;
Step 4: Retrieve the result and convert it to the json array to get the fields.&lt;br&gt;
Step 5: The Json array contains several objects with fields, we need two fields only: "status", "created_at"&lt;br&gt;
Step 6: On each request and response, iterate over the response json array and check the above fields on each json object to confirm whether the push happened and the date is current date.&lt;br&gt;
Step 7: Track the count with a instance variable.&lt;br&gt;
Step 8: Finally group the all the contributions with respective usernames.&lt;br&gt;
Step 9: Here we have a telegram bot to make these tracking send to our official group.&lt;br&gt;
Step 10: Stop the program.&lt;/p&gt;

&lt;p&gt;Project Repo Link: &lt;a href="https://gitlab.com/vasudevan-repo/gitlab/-/tree/main/GitAutomation?ref_type=heads" rel="noopener noreferrer"&gt;https://gitlab.com/vasudevan-repo/gitlab/-/tree/main/GitAutomation?ref_type=heads&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>contributionstracker</category>
      <category>programming</category>
      <category>gitlab</category>
    </item>
    <item>
      <title>Hackathon's experience</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Sat, 19 Apr 2025 17:08:02 +0000</pubDate>
      <link>https://dev.to/vasutamil19/hackathons-experience-3cpo</link>
      <guid>https://dev.to/vasutamil19/hackathons-experience-3cpo</guid>
      <description>&lt;p&gt;Hello Guys,&lt;/p&gt;

&lt;p&gt;Today I have participated in Build2Learn Hackathon for the second time. It was a good community to make friends and make new ideas and it's also convert the ideas into working model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44lzsywshfo47dtm9yk1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F44lzsywshfo47dtm9yk1.jpg" alt="Build2Learn" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I practice my knowledge with real-time scenarios and try to make progress within given time, I think it's very helpful in my professional career.&lt;/p&gt;

&lt;p&gt;The hackathon mimics the office environment, hence I don't get excited or even get struggle when I entered into office.&lt;/p&gt;

&lt;p&gt;I meet new people who are already working with best in my field (comp sci). That gives the thoughts about the actual dev.&lt;/p&gt;

&lt;p&gt;By the way, today I had no new idea but in the hackathon I collaborate with a new team who are creating a "QUERY BUILDER". The actual pipeline takes an input from user and matches the relevant scenario with the table headers in the database.&lt;/p&gt;

&lt;p&gt;This process gives the relevant columns and thereafter it writes the SQL query to retrieve the relevant answers based on the retrieved columns.&lt;/p&gt;

&lt;p&gt;This is the idea they had. In the hackathon they work in the backend using Flask and Gemini model for predicting the relevant query based on the user words.&lt;/p&gt;

&lt;p&gt;I work with them and create a new frontend interface with React and it's look like a typical chatbot interface.&lt;/p&gt;

&lt;p&gt;We couldn't integrate the frontend with Flask, but we found out the problem finally and also the given time was finished.&lt;/p&gt;

&lt;p&gt;Overall the experience very close to my profession. I thought it was very good practice and also it helps me to find new people.&lt;/p&gt;

&lt;p&gt;You can review the code if you like to help me, here is the &lt;br&gt;
Frontend UI codeRepo link - &lt;a href="https://gitlab.com/vasudevan-repo/querybuilder" rel="noopener noreferrer"&gt;https://gitlab.com/vasudevan-repo/querybuilder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;output:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddwu5ecwj1cog6ftkvae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fddwu5ecwj1cog6ftkvae.png" alt="Query Builder" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>react</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>Access modifiers in Java</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Wed, 16 Apr 2025 13:49:46 +0000</pubDate>
      <link>https://dev.to/vasutamil19/access-modifiers-in-java-1b0p</link>
      <guid>https://dev.to/vasutamil19/access-modifiers-in-java-1b0p</guid>
      <description>&lt;p&gt;Date: 16-April-2025&lt;/p&gt;

&lt;p&gt;Access Modifiers:&lt;/p&gt;

&lt;p&gt;Accessibility is one of the major concerns in programming. Setting access to particular data in a program is a crucial aspect, especially when it comes to sensitive data. If it's not configured properly, the application may become unusable.&lt;/p&gt;

&lt;p&gt;For example,&lt;/p&gt;

&lt;p&gt;Let us consider a scenario where we are developing a project for government requirements. The government states that some of the information in this project is highly sensitive and must not be leaked. This is exactly where we need accessibility control over the data.&lt;/p&gt;

&lt;p&gt;Is there any way to take control over accessibility?&lt;/p&gt;

&lt;p&gt;Yes, there is a way to achieve this.&lt;/p&gt;

&lt;p&gt;In Java, a concept called Access Modifiers is used for managing access-related functionalities.&lt;/p&gt;

&lt;p&gt;Access modifiers in Java are used to control the access to the states (data members) and behaviors (methods) of a class.&lt;/p&gt;

&lt;p&gt;But how?&lt;/p&gt;

&lt;p&gt;By defining the elements with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;private&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;default&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;protected&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;public&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The above four terms are known as access modifiers in Java.&lt;/p&gt;

&lt;p&gt;Note: These are all keywords, and developers should not use them as reference names.&lt;/p&gt;

&lt;p&gt;Let’s see the functions of each access modifier:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;private&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The name itself explains the functionality—private. The private access modifier is used to limit the access of states and behaviors strictly within the class they belong to.&lt;/p&gt;

&lt;p&gt;If I declare a state or behavior as private, I can access them only inside that class. If I try to access them from outside, Java will throw an error.&lt;/p&gt;

&lt;p&gt;Where can we use the private modifier?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;We can declare a state as private.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We can declare a behavior (method) as private.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We can declare a constructor as private.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Where can't we use the private modifier?&lt;/p&gt;

&lt;p&gt;I. We cannot declare a top-level class as private. A class shouldn't be private.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;/p&gt;

&lt;p&gt;private int a;&lt;/p&gt;

&lt;p&gt;private void display() {&lt;br&gt;
    System.out.println("Private");&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;II. default&lt;/p&gt;

&lt;p&gt;The default modifier limits the access of states and behaviors to within the same package.&lt;/p&gt;

&lt;p&gt;We can access the members anywhere inside the same package, but not from outside the package.&lt;/p&gt;

&lt;p&gt;Unlike private, we don't need to explicitly mention the default modifier. If we do not mention any access modifier in front of a state or behavior, it is considered to have default access.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;/p&gt;

&lt;p&gt;int age;&lt;/p&gt;

&lt;p&gt;void display() {&lt;br&gt;
    System.out.println("Default");&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;III. public&lt;/p&gt;

&lt;p&gt;public is another modifier in Java. It doesn't restrict access to any data.&lt;/p&gt;

&lt;p&gt;If I declare a statement as public, I can access it from anywhere throughout the program.&lt;/p&gt;

&lt;p&gt;We will discuss the protected modifier in future blogs.&lt;/p&gt;

</description>
      <category>java</category>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Java Discussion</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Tue, 15 Apr 2025 14:28:07 +0000</pubDate>
      <link>https://dev.to/vasutamil19/java-discussion-29m9</link>
      <guid>https://dev.to/vasutamil19/java-discussion-29m9</guid>
      <description>&lt;p&gt;Can we call an constructor from an another constructor?&lt;/p&gt;

&lt;p&gt;Yes, we can.&lt;/p&gt;

&lt;p&gt;We can use this() statement to call another constructor that belongs to the same class.&lt;/p&gt;

&lt;p&gt;This process of calling an constructor from an another is called constructor chaining.&lt;/p&gt;

&lt;p&gt;e.g,&lt;/p&gt;

&lt;p&gt;public class Example{&lt;br&gt;
    public Example(){&lt;br&gt;
        System.out.println("Con");&lt;br&gt;
    }&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public Example(String name){
    System.out.println(name);
    this(); // call the zero parameter constructor. 
}

public static void main(String[] args){
Example ex = new Example("Vasu");
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;Note: Make sure you call an different constructor to avoid recursion.&lt;/p&gt;

&lt;p&gt;Packages in java:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Packages -&amp;gt; It is a grouping technique used to group the source files.

It also grant access control to our classes.

We can easily maintain our code, maintainablity is one of the main idea behind the packages.

Package name must be in small case.

We cannot use the another package classes into our program until we explicitly import them.

syntax: package accounts;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>Programming Discussion</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Sat, 12 Apr 2025 03:17:39 +0000</pubDate>
      <link>https://dev.to/vasutamil19/programming-discussion-3jio</link>
      <guid>https://dev.to/vasutamil19/programming-discussion-3jio</guid>
      <description>&lt;p&gt;When we actually need a loop in programming?&lt;/p&gt;

&lt;p&gt;Ans: &lt;br&gt;
When we perform a same procedure as a repititive process for several times.&lt;br&gt;
At that time we actually need a loop to reduce our effort.&lt;br&gt;
This is best way to think about loop for the given scenerio.&lt;/p&gt;

&lt;p&gt;Steps to think for a loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Try to convert the given scenerio into any story.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write down the actual output via programming with your know steps.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;e.g, Print 5 numbers.&lt;br&gt;
    code:&lt;br&gt;
        print(1)&lt;br&gt;
        print(2)&lt;br&gt;
        print(3)&lt;br&gt;
        print(4)&lt;br&gt;
        print(5)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;After writing the above type of code think like a intermediater between the lines of code and the computer. Try to make the process as repititive(if you need).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Introduce a new variable if only you think it is needed.&lt;br&gt;
e.g, i think a variable can look like uniformly in tha above code.&lt;br&gt;
so i introduce a variable,&lt;br&gt;
no = 1&lt;br&gt;
print(no)&lt;br&gt;
print(no)&lt;br&gt;
print(no)&lt;br&gt;
print(no)&lt;br&gt;
print(no)&lt;br&gt;
the above code does not produce the correct answer but it form an uniform and repititive process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now we need to convert the modified code into correct code.&lt;br&gt;
In this case i need to add 1 on each line before printing the number.&lt;br&gt;
For that I initialize the variable with 0.&lt;br&gt;
no = 0&lt;br&gt;
no = no +1&lt;br&gt;
print(no) -&amp;gt; 1&lt;br&gt;
no = no + 1&lt;br&gt;
print(no) -&amp;gt; 2&lt;br&gt;
no = no+1&lt;br&gt;
print(no) -&amp;gt; 3&lt;br&gt;
no = no+1&lt;br&gt;
print(no) -&amp;gt; 4&lt;br&gt;
no=no+1&lt;br&gt;
print(no) -&amp;gt; 5&lt;br&gt;
-- stop the program.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Notice that we modify the code into an uniform repititive process and its output was correct, now its time to convert it to the loop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;First don't think about the condition. Make the inner body of the loop, we already know that right!&lt;br&gt;
no=no+1&lt;br&gt;
print(no)&lt;br&gt;
This is the repititive code we already wrote.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;while ()&lt;br&gt;
    no=no+1&lt;br&gt;
    print(no)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Try to find the condition to stop the loop from the above code.&lt;br&gt;
In this case when you look carefully we print the numbers untill 5 or the no becomes 5.&lt;br&gt;
so this is the condition we need to give in loop.&lt;br&gt;
We are able to find the condition easily in this case, all the case are not like this, but all case have anyone condition, that condition is also found in your preparation, try to find it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After finding the condition, code the loop.&lt;/p&gt;

&lt;p&gt;while(no&amp;lt;=5){&lt;br&gt;
    no=no+1&lt;br&gt;
    print(no)&lt;br&gt;
}&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Java Constructor.</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Fri, 11 Apr 2025 03:59:01 +0000</pubDate>
      <link>https://dev.to/vasutamil19/java-constructor-3aka</link>
      <guid>https://dev.to/vasutamil19/java-constructor-3aka</guid>
      <description>&lt;p&gt;Date : 10-April-2025&lt;/p&gt;

&lt;h2&gt;
  
  
  Constructor
&lt;/h2&gt;

&lt;p&gt;In java methods are typical one and we wrote every code in a method. That method are varies in nature.&lt;/p&gt;

&lt;p&gt;Some methods works same in all time, not the inner content of the method, before executing the methods content, the methods all are working under a same priciple except some methods.&lt;/p&gt;

&lt;p&gt;one of those except methods is Constructor. Constructor is a special type of method which is only invoked by an instance at that time of its creation. Constructor is only invoked at the time of object creation. Instance of class is the only invoker of a Constructor.&lt;/p&gt;

&lt;p&gt;Without object we cannot able to call any constructor.&lt;/p&gt;

&lt;p&gt;Rules to define a constructor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A constructor name must be same as its classname.&lt;/li&gt;
&lt;li&gt;A constructor must not have any method return type.&lt;/li&gt;
&lt;li&gt;A constructor can be overloaded.&lt;/li&gt;
&lt;li&gt;If no constructor is defined in the class, a default constructor will be assigned to it by JVM. Note: The default constructor is a no argument constructor.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;e.g,&lt;/p&gt;

&lt;p&gt;class ConstructorSample{&lt;/p&gt;

&lt;p&gt;ConstructorSample(){&lt;br&gt;
    System.out.println("This is a constructor");&lt;br&gt;
 }&lt;/p&gt;

&lt;p&gt;public static void main(String[] args){&lt;/p&gt;

&lt;p&gt;ConstructorSample cs = new ConstructorSample();&lt;br&gt;
 }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;output:&lt;/p&gt;

&lt;p&gt;This is a contructor.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>java</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Java Discussion:</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Thu, 10 Apr 2025 04:15:38 +0000</pubDate>
      <link>https://dev.to/vasutamil19/java-discussion-2aka</link>
      <guid>https://dev.to/vasutamil19/java-discussion-2aka</guid>
      <description>&lt;p&gt;Payilagam - 19-April-2025&lt;/p&gt;

&lt;p&gt;1) Method overloading &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Object's can have several methods. We cannot define a method with a same name more than once. This is true. But with some exceptional it may be false, because we can define a method with same name but with the difference in the arguments.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;A method with same name can be re-defined with&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;i) different number of arguments.
ii) different types(data types) of parameters.
iii) changing the order the parameters(only works with different data types).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With these case we can define a methods more than once in our program with a same name. This process is called Method Overloading (or) Compile-Time Polymorphism.&lt;/p&gt;

&lt;p&gt;e.g, &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// finding area for shapes

void findArea(float length, float breadth){
    // findArea method to find area of rectangle with two arguements.
}

void findArea(float adjacent, float opposite, float hypotenus){
   // findArea method to find area of triangle with three arguements.
}

void findArea(float oneside){
   // findArea method to find area of square with one arguements.
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Important Note: &lt;br&gt;
    The method overloading only acceptable if the methods parameters are different in types or order or length with same name. The other factors did not provide the capabilities of method overloading. e.g, access modifiers (public, private, protected), (static, non-static), method return types cannot the determine the method overloading.&lt;/p&gt;

&lt;p&gt;Cover image courtesy: Java Hungry (&lt;a href="https://javahungry.blogspot.com/" rel="noopener noreferrer"&gt;https://javahungry.blogspot.com/&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Java basic stuffs 🥷</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Mon, 07 Apr 2025 15:24:01 +0000</pubDate>
      <link>https://dev.to/vasutamil19/java-basics-stuffs-hl3</link>
      <guid>https://dev.to/vasutamil19/java-basics-stuffs-hl3</guid>
      <description>&lt;p&gt;Date : 07-April-2025&lt;/p&gt;

&lt;p&gt;Java Basic things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Java&lt;/strong&gt; only two types of symbols cam end the block of code or puttig end to the statement.&lt;/p&gt;

&lt;p&gt;One is -&amp;gt; &lt;strong&gt;;&lt;/strong&gt;&lt;br&gt;
anothher one is -&amp;gt; &lt;strong&gt;{ }&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;These are the two types of way where we can putting an end to our statements in Java.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method return data types:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We can return both primitive and non-primitive data types from method.&lt;br&gt;
Additionally, we can specify a special return type called &lt;strong&gt;void&lt;/strong&gt;. &lt;br&gt;
    &lt;strong&gt;Void&lt;/strong&gt; means -&amp;gt; nothing to return.&lt;/p&gt;

&lt;p&gt;If a method is declared using void as return type it may or mah not use return statement without value.&lt;/p&gt;

&lt;p&gt;Buf if we returns a value in a void function, Java throws an Compile Time Error.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Default values.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What is default values?&lt;br&gt;
  If we declared a variable without any value in global scope, JVM fill the variables with a default value according to its datatype.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Note:&lt;/strong&gt;&lt;br&gt;
   This default value concept only works on global variables(static variables and Instance variables).&lt;br&gt;
   JVM does not apply this concept on local variables. &lt;br&gt;
   Only Global variables(instance variables) can be able to avail this feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reason behind this Default values&lt;/strong&gt;:&lt;br&gt;
 Instance variables only declared and initiated when the respective object wants to initiate them. Until the object was created variables cannot have values. Hence JVM puts the default values in it.&lt;br&gt;
        Static variables can also have default values by JVM.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  +---------+---------------+ 
  |Datatype | Default values|
  +---------+---------------+
  int        -   0
  short      -   0
  byte       -   0   
  long       -   0
  float      -   0.0
  double     -   0.0
  char       -   ''
  boolean    -   false

  Object 
  reference  -    null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ol&gt;
&lt;li&gt;By default the decimal number are considered as double in java not float.
e.g, &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;float piValue(){&lt;br&gt;
   return 3.14; -&amp;gt; It throws error because by default decimal nums considered as double.&lt;br&gt;
    }&lt;/p&gt;

&lt;p&gt;we need to give like this&lt;/p&gt;

&lt;p&gt;float piValue(){&lt;br&gt;
    return 3.14f; -&amp;gt; it works fine&lt;br&gt;
    }&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Like float, by default the whole numbers in Java sre considered to be as Integer datatype.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Impicit Type conversion&lt;/strong&gt; in java.&lt;/p&gt;

&lt;p&gt;The smaller sized datatypes can be casted into larger sized datatypes but the vice versa cannot be done due to size limitation.&lt;/p&gt;

&lt;p&gt;e.g, &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correct ✓&lt;/strong&gt; byte,short, int -&amp;gt; long. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrong X&lt;/strong&gt; long -&amp;gt; int, short, byte.&lt;/p&gt;

&lt;p&gt;This condition also fit for float &amp;amp; double data types.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>beginners</category>
      <category>basic</category>
    </item>
    <item>
      <title>Programming Discussion</title>
      <dc:creator>Vasudevan Tamilarasan</dc:creator>
      <pubDate>Fri, 04 Apr 2025 12:23:23 +0000</pubDate>
      <link>https://dev.to/vasutamil19/programming-discussion-lk2</link>
      <guid>https://dev.to/vasutamil19/programming-discussion-lk2</guid>
      <description>&lt;p&gt;Programming Discussion:&lt;/p&gt;

&lt;p&gt;Whenever we are trying to code a program, the things:&lt;br&gt;
    1. Understand the problem first.&lt;br&gt;
    2. Try to code this in pen&lt;br&gt;
    3. Draw a flow-chart for the execution flow, if you sure about the flow chart, the problem is solved by 50%.&lt;/p&gt;

&lt;p&gt;Flow chart: &lt;br&gt;
    Try to clearly understand the situation with clear conditioning and care about that results.&lt;br&gt;
    The clear understand of the scenarios will leads to the successful result.&lt;/p&gt;

&lt;p&gt;What is Datatype?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Datatype is a logical idea of having an certain effects that need to be done on that.
2. Computer can understand what type of data is that using this datatype.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;What is Variables?&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Variables are act like a container that are used to store values within it. But values may or may not be the same format.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;If same format is same, that's usual. But what if the values are in different format, how we store the values, how we stored these types of values, how we can define what types of operations are to be performed on this values.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;For all of these questions, data types can help in some ways.

Each type of data has its own nature: e.g, numbers can be performed arithmetically, characters can be concatenated and not arithmetic, 0's and 1's are can be stored to show status of the work. 

Datatype gives the regulation of a variable to act like specific container for a specific value:(variables for storing values)

Datatype defines to:

    1) It sets the exact memory space for the respective type of data.
    2) It defines what type of operation that can be perfomed on the values.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Datatypes are majorly categorized into two types:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Primitive Data types         - It defines a fixed length for the data.&lt;/li&gt;
&lt;li&gt;Non Primitive Data types     - It defines the memory dynamically and it cannot be static, It may the collection of element or etc... &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Languages that supports Primitive &amp;amp; Non-Primitive Datatype:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;C/C++ - Primitive     -&amp;gt; int, short, long, float, double, char, bool&lt;br&gt;
       Non-Primitive -&amp;gt; struct, arrays, unions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Java   - Primitive     -&amp;gt; byte, int, short, long, float, double, char, boolean&lt;br&gt;
        Non-Primitive -&amp;gt; user-defined classes, pre-defined classes, arrays, strings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;C#     - Primitive     -&amp;gt; byte, int, short, long, float, double, char, bool&lt;br&gt;
        Non-Primitive -&amp;gt; user-defined classes, pre-defined classes, arrays, strings.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Languages that are not supports Primitive &amp;amp; Non-Primitive Datatype:&lt;/p&gt;

&lt;p&gt;Python, Ruby  - Everything are treated like an objects.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>discuss</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
