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
Czy Java jest nadal darmowa? Jeśli nie, to co teraz? Które JDK wybrać?
Source: Czy Java jest nadal darmowa? Jeśli nie, to co teraz? Które JDK wybrać? Czyli jak to jest teraz mniej więcej z licencją Javy.
Oraz trochę o Java i JavaEE:
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ą.