🚀 Starting my journey in Java programming! Today I implemented a simple concept with a Program— Factorial of a number. Factorial is widely used in mathematics and programming problems. Through this program, I practiced loops, condition handling, and method creation in Java. 💡 What I learned: • Writing reusable methods • Handling edge cases (like negative numbers) • Taking user input using Scanner • Strengthening my logic-building skills Here’s my implementation: import java.util.*; class FactorialProgram { private static int factorial(int a) { int fact = 1; if (a >= 0) { for (int i = a; i >= 1; i--) { fact = fact * i; } } else { System.out.println("Factorial of negative numbers cannot be determined"); return 0; } return fact; } public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.print("Enter the number: "); int a = sc.nextInt(); System.out.println("\nFactorial of the Number: " + factorial(a)); sc.close(); } } Would love feedback or suggestions to improve this further 🙌, as i am learning please help!! #Java #Programming #CodingJourney #LearningInPublic #BeginnerDeveloper #TechSkills
Java Factorial Program Implementation and Learning Experience
More Relevant Posts
-
🚀 Exploring Method Overloading in Java As part of my journey in mastering Object-Oriented Programming in Java, I recently explored one of the most powerful concepts of Polymorphism — Method Overloading. 💡 What is Method Overloading? Method overloading is the process of creating multiple methods with the same name in a class, but with different parameter lists. It allows the same action to behave differently based on the input — making programs more flexible and readable. 🔹 Three Ways to Achieve Method Overloading A method can be overloaded by changing: 1️⃣ Number of parameters 2️⃣ Data types of parameters 3️⃣ Order/sequence of parameters ❌ Invalid Case If two methods have the same name + same parameters but different return types, it is NOT valid overloading and results in a compile-time error. Example: int area(int, int) float area(int, int) → Compilation Error 🚫 🧠 Why is it called False (Virtual) Polymorphism? To the user, it looks like one method performing multiple tasks (one-to-many). But internally, each call maps to a separate method (one-to-one) — hence the term False Polymorphism. ⚡ Type Promotion in Overloading If an exact match is not found, Java automatically promotes smaller data types to larger ones: byte → short → int → long → float → double This makes method overloading even more powerful and flexible! 👩💻 Simple Example class AreaCalculator { int area(int l, int b) { return l * b; } double area(double r) { return 3.14 * r * r; } int area(int side) { return side * side; } } TAP Academy ✨ Learning these core OOP concepts is helping me build stronger foundations in Java and improve my problem-solving skills step by step. #Java #OOP #Programming #CodingJourney #ComputerScience #LearningInPublic
To view or add a comment, sign in
-
-
🚀 Operators in Java — and this is where coding actually starts feeling real 👇 Instead of just theory, I tried solving small problems using operators. 💡 Example 1: Even or Odd int num = 7; System.out.println(num % 2 == 0 ? "Even" : "Odd"); 💡 Example 2: Find largest number int a = 10, b = 5; int max = (a > b) ? a : b; System.out.println("Max: " + max); 💡 Example 3: Using increment int count = 1; count++; System.out.println(count); // 2 👉 What I learned today: Arithmetic → for calculations Relational → for comparisons Logical → for combining conditions Unary → for quick updates (++/--) Ternary → for writing clean if-else Understanding operators made me realize how logic is built step by step in programming. #Java #CodingJourney #LearnJava #FullStackDeveloper
To view or add a comment, sign in
-
Day 60 of Sharing What I’ve Learned 🚀 Comparable in Java — Defining Natural Sorting After learning how Comparator gives us custom sorting flexibility, I explored the foundation of sorting in Java — Comparable. 👉 Before customizing sorting… we should understand the default behavior 🔹 What is Comparable? Comparable is an interface in Java used to define natural (default) sorting of objects. 👉 It is implemented inside the class itself 🔹 How does Comparable work? 👉 We override compareTo() method 👉 Returns: ✔ Negative → current object comes before another ✔ Zero → both are equal ✔ Positive → current object comes after another 🔹 Why use Comparable? ✔ Defines default sorting behavior ✔ Simple and clean for single sorting logic ✔ Automatically used by sorting methods 🔹 Real-World Use Cases 👉 Sorting students by ID 👉 Sorting employees by name 👉 Sorting products by default price 🔹 Key Features ✔ Internal sorting logic (inside class) ✔ Only one sorting logic per class ✔ Works with Collections.sort() & Arrays.sort() 🔹 Comparable vs Comparator 👉 Comparable = internal / natural sorting 👉 Comparator = external / custom sorting 🔹 When should we use Comparable? 👉 Use it when: ✔ You need a single default sorting ✔ Sorting logic is fixed ✔ Natural ordering makes sense 🔹 When NOT to use? ❌ When multiple sorting logics are needed ❌ When sorting logic may change dynamically 🔹 Key Insight 💡 Before customizing everything… 👉 Always define a strong default behavior 🔹 Day 60 Realization 🎯 Great developers don’t just customize sorting… 👉 They design a meaningful default order first #Java #Comparable #DataStructures #CollectionsFramework #Programming #DeveloperJourney #100DaysOfCode #Day60 Grateful for guidance from, TAP Academy Sharath R kshitij kenganavar
To view or add a comment, sign in
-
-
🔹 What is a Constructor in Java? A constructor is a special method that is used to initialize objects in a class. 👉 It is called automatically when an object is created. A constructor helps to give values to an object at the time of creation. Example: class Student { int id; String name; Student(int i, String n) { id = i; name = n; } } ✔ When we create an object: Student s1 = new Student(101, "John"); 🚀 Types of Constructors: ✔ Default Constructor – No parameters ✔ Parameterized Constructor – With parameters ✔ Copy Constructor – Copy values from another object 🚀 Why use Constructor? - To initialize object values - To reduce extra code - Makes object creation easy #FortuneaCloudeTechnology #Java #Constructor #OOP #Programming #Coding
To view or add a comment, sign in
-
-
Today I explored some fundamental yet powerful concepts in Java that every developer should have a strong grip on: 🔹 Static Methods & VariablesUnderstanding how static members are shared across all objects really changed how I think about memory and efficiency. It’s amazing how a simple static keyword can help track object creation and maintain shared data seamlessly. 🔹 Constructor Overloading & this KeywordThis concept made object initialization much more flexible. Using multiple constructors and the this keyword not only improves code readability but also avoids redundancy. 💡 What I realized:Strong basics are the real game-changer. These concepts might look simple, but they build the foundation for writing clean, scalable, and efficient code. 📌 Consistency in learning > Complexity in topics I’m currently focusing on strengthening my core Java skills and building projects around them. Every small concept learned today contributes to becoming a better developer tomorrow. #Java #Programming #CodingJourney #DeveloperLife #JavaDeveloper #Learning #TechSkills #Coding #StudentDeveloper
To view or add a comment, sign in
-
Day 12 of Learning Java Today I learned something small in Java that actually plays a big role in programming — Type Casting. At first, I thought it was complicated. But the idea is actually simple. Sometimes in programming, we need to convert one data type into another. For example, converting an `int` into a `double`. That process is called Type Casting. Java mainly has two types of type casting: - Implicit Casting (Widening) This happens automatically when converting a smaller data type into a larger one. Example: `int → double` - Explicit Casting (Narrowing) This is done manually when converting a larger type into a smaller one. Example: `double → int` Simple example: int num = 10; double result = num; // implicit casting double price = 19.99; int rounded = (int) price; // explicit casting What I’m realizing while learning Java is that even small concepts build the foundation of programming logic. Slowly learning. Step by step. #JavaLearning #LearningInPublic #CodingJourney #JavaProgramming #WomenInTech
To view or add a comment, sign in
-
🚀 Learning Core Java – Achieving Runtime Polymorphism using Loose Coupling Today I explored an important concept in Java — Runtime Polymorphism through Loose Coupling. Runtime polymorphism is one of the most powerful features of Object-Oriented Programming because it helps us write flexible, scalable, and maintainable code. 🔹 What is Tight Coupling? Tight Coupling means: 👉 A child class reference is used to create and access a child class object Example conceptually: Child child = new Child(); Here, the code is directly dependent on the child class. This creates: ❌ Less flexibility ❌ Harder maintenance ❌ Difficult scalability Because if the implementation changes, the code also needs changes. 🔹 What is Loose Coupling? Loose Coupling means: 👉 A parent class reference is used to refer to a child class object Example conceptually: Parent ref = new Child(); This is also called: ✔ Upcasting ✔ Runtime Polymorphism ✔ Dynamic Method Dispatch Here, the parent reference can call overridden methods of the child class at runtime. This gives: ✔ Better flexibility ✔ Easy maintenance ✔ Scalable design ✔ Cleaner architecture 🔹 Limitation of Loose Coupling Using a parent reference: 👉 We can only access methods available in the parent class Even though the object is a child object, we cannot directly access specialized methods of the child class. 🔹 How to Access Child-Specific Methods? We use Downcasting 👉 Convert parent reference back to child reference Conceptually: Child child = (Child) ref; Now the parent reference behaves like a child reference, and we can access: ✔ Specialized methods ✔ Child-specific properties 💡 Key Insight 👉 Tight Coupling = Less flexibility 👉 Loose Coupling = More flexibility + Runtime Polymorphism 👉 Downcasting helps access specialized child methods This concept is heavily used in Spring Framework, Dependency Injection, Interfaces, and Enterprise Applications. Understanding this helps build professional-level Java applications. Excited to keep strengthening my OOP fundamentals! 🚀 #CoreJava #RuntimePolymorphism #LooseCoupling #TightCoupling #ObjectOrientedProgramming #JavaDeveloper #ProgrammingFundamentals #LearningJourney
To view or add a comment, sign in
-
-
🚀 **Day 5 of My DSA Journey in Java** Today’s session was all about understanding one of the most fundamental concepts in programming — **Variables**. 🔹 Learned that variables are **named memory locations** used to store, read, and update data. 🔹 Understood how to **declare and initialize variables** (e.g., `int age = 5;`) and why initialization is important to avoid errors. 🔹 Explored important **naming rules**: • Java is case-sensitive (`age` ≠ `AGE`) • Variables can start with letters, `_`, or `$` • Reserved keywords cannot be used as variable names 🔹 Followed best practices for writing clean code: • Use **meaningful variable names** instead of random letters • Use **UPPERCASE for constants** • Apply **camelCase** for better readability (e.g., `totalMarks`) Small concepts, but they build the foundation for everything ahead in coding. Consistency is key — one step at a time 💻✨ #DSA #Java #LearningJourney #Coding #Programming #Variables #Beginners
To view or add a comment, sign in
-
🚀 DSA in Java – Day 89 ✅ Today, I solved the Minimum Distance to the Target Element problem on LeetCode 💻 🔍 Problem Insight: Given an array, a target element, and a starting index — we need to find the minimum distance between the start index and any occurrence of the target. 🧠 Approach I Used: Traversed the array using a loop Checked where the element equals the target Calculated distance using Math.abs(i - start) Updated the minimum distance using Math.min() ⚡ Key Learning: Sometimes the simplest linear traversal (O(n)) gives the most optimal solution. No need to overcomplicate! 💡 Code Concept: Use a variable to track minimum distance Update it whenever a closer target is found 💬 What I Learned Today: Consistency is more important than complexity. Even simple problems strengthen your fundamentals! 🔥 Day 89 Progress: Strengthened problem-solving skills Improved understanding of distance-based logic Practiced writing clean and optimized Java code 📈 Still learning, still growing… one problem at a time! #LeetCode #DSAinJava #ProblemSolving #Java #CodingJourney #Consistency #SoftwareDeveloper 🚀
To view or add a comment, sign in
-
-
🔹 Title: Solving “Plus Minus” Problem in Java 📊 🔹 Description: Today I solved the Plus Minus problem, where the goal is to calculate the ratios of positive, negative, and zero values in an array. The challenge was not just counting the values, but also formatting the output correctly to 6 decimal places. 💡 Approach: Traverse the array and count positives, negatives, and zeros Divide each count by the total number of elements Print results using precise formatting 🔹 What I learned: ✔ Importance of output formatting ✔ Handling edge cases (like zeros) ✔ Writing clean and efficient Java code Consistency in practicing such problems really strengthens core programming skills. 🚀 #Java #Coding #ProblemSolving #Programming #DataStructures
To view or add a comment, sign in
-
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development