
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ą.
