Obliczanie średniej ocen z przedmiotów – Java

package net.traininguniverse.srednia_ocen;

/**
 * 
 * Program wyliczający średnią ocen z kilku przediotów w szkole.
 *
 */

public class Main {

	public float obliczSrednia(int[][] uczen) {

		float suma = 0;

		for (int i = 0; i < uczen.length; ++i)
			for (int j = 0; j < uczen[i].length; ++j) {
				suma += uczen[i][j];
			}
		return suma / (uczen.length * uczen[uczen.length - 1].length);
	}

	public static void main(String[] args) {

		int numberOfClasses = 3; // liczba przedmiotów
		int numberOfNotes = 4; // liczba ocen z danego przedmiotu
		int[][] Pawel = new int[numberOfClasses][numberOfNotes];

		Pawel[0] = new int[] { 2, 2, 2, 2 };
		Pawel[1] = new int[] { 3, 3, 3, 3 };
		Pawel[2] = new int[] { 5, 5, 5, 5 };

		Main main = new Main();
		System.out.println(main.obliczSrednia(Pawel));

	}
}

Java | pola chronione

Ćwiczenie:
Utwórz klasę z polami chronionymi i drugą (w tym samym pliku), która posiada metodę manipulującą danymi chronionymi z pierwszej klasy.

 

Rozwiązanie:

package net.traininguniverse.main;

class Animal{
    protected String name;
    protected int age;
}

public class Main {

    void setName(Animal animal, String name){
        animal.name = name;
    }
    String getName(Animal animal){
        return animal.name;
    }
    void setAge(Animal animal, int age){
        animal.age = age;
    }
    int getAge(Animal animal){
        return animal.age;
    }

    public static void main(String[] args){
        Animal animal = new Animal();
        Main main = new Main();

        main.setName(animal,"Reksio");
        main.setAge(animal,5);

        String name = main.getName(animal);
        int age = main.getAge(animal);

        System.out.println("Zwierzak nazywa się: " + name + " oraz ma " + age + " lat");

    }
}

Uwaga!
Tylko jedna klasa może być publiczna, inaczej kompilator wyrzuci błąd, że muszą być w oddzielnych plikach.

Java | dostęp do metod chronionych

Ćwiczenie.
Wykaż, że metody chronione podlegają dostępowi pakietowemu, ale nie są metodami publicznymi.

Rozwiązanie:
Tworzymy dwie klasy: Animal i Owner w dwóch oddzielnych pakietach.
Odpowiednie klasy są dostępne poniżej:

Animal.java:

package net.traininguniverse.hiddden;

public class Animal {

    protected boolean isHungry(boolean feed) {
        if (feed)
            return false;
        else
            return true;
    }

    public boolean showIsHungry(boolean feed) {
        return isHungry(feed);
    }
}

 

 

Owner.java:

package net.traininguniverse.main;

import net.traininguniverse.hiddden.Animal;


public class Owner {

    public static void main(String[] args) {

        Animal animal = new Animal();
        //animal.isHungry(true);
        //blad kompilatora (protected access), wiec nie jest publiczna
        System.out.println(animal.showIsHungry(true));
        //wyswietla false, czyli podlega dostepowi pakietowemu
    }
}

 

Java i własna biblioteka narzędziowa

Środowisko:
-Java 11
-IntelliJ IDEA 2021.2.1
-Linux

Pokażę pokrótce jak można w powyższym środowisku stworzyć własne biblioteki pomocnicze oraz je potem wykorzystać.
Ma to na celu zredukowanie lub wyeliminowanie powtarzania kodu (można też w ten sposób korzystać z czyichś gotowych bibliotek w swoim kodzie).

Kolejne kroki:
1. Tworzę nowy projekt z biblioteką, którą chcę wykorzystać, np. w innym projekcie.
2. Eksportuję napisaną bibliotekę do jar-a.
3. Tworzę nowy projekt, w którym wykorzystam posiadaną już bibliotekę.
4. Importuję jar-a do nowego projektu.

Poniżej krótki film instruktażowy:

Uruchomienie aplikacji Spring Boot na Heroku

Zgodnie z linkiem tworzymy szkielet Spring Boot. Na stronie Initializr dodajemy jako zależności “Spring Web”.
Możemy dodać jakąś nową klasę, żeby wyświetlała nam jakiś tekst, np. :

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Example {

@RequestMapping("/")
String hello(){
return "Witaj świecie!";
}

public static void main(String[] args){
SpringApplication.run(Example.class,args);
}
}

Standardowo odpalamy aplikację i powinien wyświetlić nam się żądany tekst.

Gdy mamy już zainstalowanego Git-a i Heroku logujemy się:

$heroku login

Następnie tworzymy lokalne repozytorium i dodajemy pliki:

git init
git add .
git commit -m "initial commit"

Tworzymy aplikację komendą:

$heroku create

A potem wrzucamy kod do zdalnego repozytorium:
$git push heroku master

I otwieramy za pomocą polecenia:
$heroku open

Java EE i MS SQL Server w Eclipse

Czyli jak połączyć się w języku programowania Java z serwerem bazodanowym SQL Server.

Konfiguracja SQL Server:

1. W Configuration Manager włączyć protokół TCP/IP dla serwera.

2. Stworzyć użytkownika z możliwością logowania do bazy:

CREATE LOGIN user_name WITH PASSWORD='***';
CREATE USER user_name FOR LOGIN user_name;

3. Stworzyć bazę danych, której właścicielem jest powyższy użytkownik (Database Properties/Files/Owner).

4. Sprawdzić poprawność logowania.

Eclipse Java IDE for Web Developers:

1. Otworzyć narzędzie Data Source Explorer (Window/Show View/Other/Data Source Explorer)

2. Utworzyć połączenie (Database Connections/New/SQL Server/Microsoft SQL Server 2008 JDBC Driver/Jar List/Clear All). Dodać ściągnięty najnowszy sterownik sterownik JAR. Ustawić nazwę użytkownika i hasło. Zmienić nazwę sterownika na inną. Przetestować połączenie.

Projekt aplikacji:

1. Stworzyć nowy dynamiczny webowy projekt. Określić środowisko wykonawcze, np. Apache Tomcat. Zaznaczyć generuj web.xml. Po utworzeniu projektu wrzucić sterownik, przykładowo o nazwie sqljdbc.jar do /WEB-INF/lib. Utworzyć dwie klasy: Polaczenie.java:

package pl.polaczenie;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Polaczenie {
	
	private Connection connection;
	private String userName = "user_name";
	private String password = "password";
	private String url = "jdbc:sqlserver://localhost:1433;databaseName=base_name";
	
	public Polaczenie() {
		try {
			connection = DriverManager.getConnection(url, userName, password);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public Connection getConnection() {
		return connection;
	}

}

i PolaczenieTest.java:

package pl.test;

import static org.junit.Assert.assertNotNull;

import org.junit.jupiter.api.Test;

import pl.polaczenie.Polaczenie;

public class PolaczenieTest {
	
	Polaczenie polaczenie = new Polaczenie();
	
	@Test
	public void checkConnection() {
		assertNotNull(polaczenie.getConnection());
	}
}

Odpowiednio należy wstawić nazwę użytkownika, hasło i nazwę bazy danych. Uruchomić jako testy jednostkowe. Jeżeli nie ma błędów mamy poprawne połączenie aplikacji z bazą. I można zacząć tworzyć aplikację webową.