Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yedhink/ktu-java

Learn Java easily. A collection of simple programs primarily focusing on the KTU syllabus for Java
https://github.com/yedhink/ktu-java

awt java javafx-application jdk9 ktu learn-java simple-programs swing-gui

Last synced: about 1 month ago
JSON representation

Learn Java easily. A collection of simple programs primarily focusing on the KTU syllabus for Java

Awesome Lists containing this project

README

        

```
/$$ /$$ /$$ /$$
| $$ | $$ /$$/ | $$
| $$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ | $$ /$$/ /$$$$$$ /$$ /$$
| $$ /$$__ $$ |____ $$ /$$__ $$| $$__ $$ | $$$$$/ |_ $$_/ | $$ | $$
| $$ | $$$$$$$$ /$$$$$$$| $$ \__/| $$ \ $$ | $$ $$ | $$ | $$ | $$
| $$ | $$_____/ /$$__ $$| $$ | $$ | $$ | $$\ $$ | $$ /$$| $$ | $$
| $$$$$$$$| $$$$$$$| $$$$$$$| $$ | $$ | $$ | $$ \ $$ | $$$$/| $$$$$$/
|________/ \_______/ \_______/|__/ |__/ |__/ |__/ \__/ \___/ \______/



/$$$$$
|__ $$
| $$ /$$$$$$ /$$ /$$ /$$$$$$
| $$ |____ $$| $$ /$$/ |____ $$
/$$ | $$ /$$$$$$$ \ $$/$$/ /$$$$$$$
| $$ | $$ /$$__ $$ \ $$$/ /$$__ $$
| $$$$$$/| $$$$$$$ \ $/ | $$$$$$$
\______/ \_______/ \_/ \_______/



/$$ /$$ /$$ /$$ /$$ /$$$$$$$$ /$$
| $$ /$ | $$|__/ | $$ | $$ | $$_____/ | $$
| $$ /$$$| $$ /$$ /$$$$$$ | $$$$$$$ | $$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$
| $$/$$ $$ $$| $$|_ $$_/ | $$__ $$ | $$$$$ |____ $$ /$$_____/ /$$__ $$ | $$
| $$$$_ $$$$| $$ | $$ | $$ \ $$ | $$__/ /$$$$$$$| $$$$$$ | $$$$$$$$ |__/
| $$$/ \ $$$| $$ | $$ /$$| $$ | $$ | $$ /$$__ $$ \____ $$| $$_____/
| $$/ \ $$| $$ | $$$$/| $$ | $$ | $$$$$$$$| $$$$$$$ /$$$$$$$/| $$$$$$$ /$$
|__/ \__/|__/ \___/ |__/ |__/ |________/ \_______/|_______/ \_______/ |__/
```

# Made with ❤ by yours truly

# Acknowledgement
I would like to start by thanking my teacher Ms.Divya John for giving me the best introduction to the Java world.

# Introduction
This repo consists of my work on Java and the simple programs which i had done inorder to learn Java.

To be specific my aim was to familiarize with the APJ Abdul Kalam Technological University's (initially Kerala Technological University(KTU)) [syllabus](https://drive.google.com/file/d/0B9ojglPaasIEUUFuSVRXbDlZTEk/view) for Java.

Created this repository with the aim of helping out my friends and others to understand the basics of Java and to understand its scope by doing some programs.

# Requirements
1. Java SE Development Kit(JDK) --> [Install JDK](https://www.codenotfound.com/java-download-install-jdk-8-windows.html)
1. For coding make use of IDEs like [IntelliJ](https://www.jetbrains.com/idea/download/index.html#section=linux)
or Text Editors like [Sublime Text](https://www.sublimetext.com/3)
or the classic and powerful command line editor [Vim](https://www.vim.org/download.php) which i use. `¯\_(ツ)_/¯`

# How to use my repositiory?
Assuming that you've already installed the above requirements and it is in a working condition. Then:-
1. Fork the repository(optional)
1. Clone/Download the files into your local machine
###### For Linux Users :-
[Set up git](https://help.github.com/articles/set-up-git/) in your local machine
Then from command line create a clone in your local machine by:-
```bash
git clone https://github.com/yedhink/KTU-Java.git
```
###### For Other Users :-
Follow this [documentation](https://help.github.com/articles/cloning-a-repository/)

# Content
In the programs that I've done, I have covered and most importantly used concepts such as:

1. [Classes and Objects](https://www.tutorialspoint.com/java/java_object_classes.htm)
1. [Operators and their Precedence](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)
1. [Packages](https://www.tutorialspoint.com/java/java_packages.htm)
1. [Method Overiding and Overloading](https://www.programcreek.com/2009/02/overriding-and-overloading-in-java-with-examples/)
1. [Static Instances](https://www.javatpoint.com/static-keyword-in-java)
1. [Threads](https://www.javaworld.com/article/2077138/java-concurrency/introduction-to-java-threads.html)
1. [String](https://www.tutorialspoint.com/java/java_strings.htm)
1. [Streams and IO](https://docs.oracle.com/javase/1.5.0/docs/api/java/io/package-summary.html)
1. [Exception Handling](https://docs.oracle.com/javase/tutorial/essential/exceptions/)
1. [AWT](https://www.javatpoint.com/java-awt)
1. [Applet](https://docs.oracle.com/javase/tutorial/deployment/applet/)
1. [Swing](http://zetcode.com/tutorials/javaswingtutorial/)
1. [File Handling](http://www.dailyfreecode.com/code/file-handling-java-3430.aspx)
1. [Event Handling](https://docs.oracle.com/javase/tutorial/uiswing/events/index.html)
1. [Data Structures](http://java.wikia.com/wiki/Data_Structures)
1. [Interfaces](https://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)
1. [Arrays](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html)
1. [JDBC](https://docs.oracle.com/javase/tutorial/jdbc/basics/index.html)

## A bit about what each directory in my repo has to offer

```
1) EastKtuMath
└──── Numerical Integration using Trapezoidal or Simpsons Methods
└──── Get all the math steps as output (optional)
└──── Streams for IO
└──── An exquisite expression parser included within
└──── And yes you guessed it right! I used to do all my math assignements this way. :D

2) Threads
└──── By Runnable Interface
└──── By Extending Thread Class
└──── Runnable Interface in Main
└──── Synchronization
└──── Some fine practice problems

3) EventHandling
└──── Creates a simple login Graphical User Interface(GUI)
└──── Creates an Applet program to add 2 numbers
└──── Covers basics of java.awt,java.applet and some of Swing
└──── Learn basics of Listeners and Events
└──── Basics from this required in upcoming programs

4) Overloading and Overriding
└──── Learn the basics of Overloading,Overriding
└──── Dynamic Method Dispatching
└──── What's super() and what is "this"? You will see
└──── Basics of jump statements
└──── Interfaces and Implementation
└──── Basics of Packages
└──── File Handling basics

5) S3CsSgpa
└──── Well? Want to apply what you've learnt? This is your opportunity.
└──── Creates a simple GUI to find your SGPA
└──── Sorting
└──── Data Structures
└──── Provides a great idea on javax.swing(the 'x' matters :p)
└──── Love designing? Play with java.awt.Color

6) Data Types And Operators
└──── Must needed basics. Dont miss this one.
└──── Different Data Types
└──── Type Casting
└──── Parsing Data Types
└──── Assignment
└──── Arithmetic
└──── Unary
└──── Relational
└──── TypeComparison
└──── Bitwise
└──── Conditional

7) 2darray
└──── Learn inputting into a 2d Array
└──── Addition of Matrices
└──── Multiplication of Matrices

8) Loops
└──── The name itself suggests what this offers :p
└──── For loops
└──── if-else-if statements

9) Abstract Keyword
└──── What is the "abstract" keyword?
└──── An example to explain in detail.

10) JDBCTemplate
└──── Java Database Connectivity
└──── Basics of mysql
└──── Basics of JDBC
└──── Reading and writing from DB
```

# What's next?
Now what you waiting for? Compile all the `*.java` files and run it.

If you're using an IDE like Intellij then i suggest you follow this [documentation](https://www.jetbrains.com/help/idea/2017.1/creating-running-and-packaging-your-first-java-application.html).

For all others, the most easiest way would be to fire up your Terminal Emulator or Command Line(cmd) for Windows users and change directory (eg:- cd S3CsSgpa) into the one of the directories in my repo.

Then compile into the same directory (which the "." represents) by:

```bash
javac -d . *.java
```

After creating the compiled .class file, just run it using (avoid the .class extension):

```bash
java classWhichConsistsOfMainMethod
```

What if it's part of a Package? No problemo. After compiling, run:

```bash
java nameOfPackage.filename
```

# Overviews
![](https://github.com/yedhink/KTU-Java/blob/master/.gif/EasyKtuMath.gif "Run the Main class only")

### Your SGPAs a click away...
![](https://github.com/yedhink/KTU-Java/blob/master/.gif/S3CsSgpa.gif "CheckSgpa")

# Contribute
Have you been looking for open source repositories to contribute? Look no further! You have come to the right place.
It's important to stick on to the [Contribution guidelines](https://github.com/yedhink/KTU-Java/blob/master/CONTRIBUTING.md) while contributing.
Try and complete the TODO list. Let's work together :)

## TODO list

- [x] Java Database Connectivity(JDBC) -> Basics and Implementaion
- [ ] Make the Graphical User Interfaces look better
- [x] Applets -> Undone since it's deprecated from JDK 9
- [x] Basics and exmaples of abstract keyword
- [x] 2-D array and examples
- [x] Standalone examples for Operators and their Precedence

# Contact
Having issues in the program? Open up an issue in the issues counter, so that I could know about it.

Feel free to contact me via [Linkedin](https://www.linkedin.com/in/yedhin1998/) if you have any questions.

# Credits
[Oracle Java Documentation](http://www.oracle.com/technetwork/java/javase/overview/index.html), [tutorialspoint](https://www.tutorialspoint.com/index.htm) were great references.

## License
This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/yedhink/KTU-Java/blob/master/LICENSE) file for details

## Spread the word
Liked the project? Just give it a star :star: and spread the word!