- 1. はじめに
- 2. 学んだこと
- 2.0.1. 【PHP初心者】クラス変数とメンバ変数について
- 2.0.2. VSCodeでSpringBootを開発する
- 2.0.3. Java Silver 6章 クラスの継承とポリモフィズム
- 2.0.4. 【Java】Javaを基礎から固めてオブジェクト指向を身につける①
- 2.0.5. Java Silver SE11を90%正解で合格するまでの道のり
- 2.0.6. Java再入門 ~Java11 ジェネリクス、ダイアモンド演算子
- 2.0.7. 勉強会用のJavaの資料を作った話
- 2.0.8. プログラミング初心者が書いたオブジェクト指向について①
- 2.0.9. javaでCUIオセロの制作 その2
- 2.0.10. XiaomiADBFastbootToolsが文字化けしていたときの対処法
- 2.0.11. [Java17] 新機能 Sealed Classes の詳細
- 2.0.12. Java17でEither書く
- 2.0.13. WSL2上でIntelliJ IDEAでJava開発
- 2.0.14. (JAVA勉強用メモ)8. 関数型インタフェース、ラムダ式
- 2.0.15. [Java基礎⑧] 二次元配列の基本・for文/拡張for文で出力
- 2.1. 初めに
- 2.2. 二次元配列とは
【intra-mart】JavaのクラスファイルなどがImportできなくなった時の対処法
#はじめに
本日は、intra-martでJavaのクラスファイルなどがImportできなくなった時の対処法を記載します。
JavaEE開発を行っている際に自分も同じ状況になりました。備忘のために記事としています。【前提条件】
・intra-mart e Builder for Accel Platform をインストール済みであること。
・intra-mart Accel Platform をインストールし、初期設定までが完了していること。
・開発環境のresinサーバーが作成されていること。
・e-Builder上にプロジェクトが作成できていて、開発を始めていること。※プロジェクトの作成方法に関しては以下を参照してください。
https://document.intra-mart.jp/library/iap/public/setup/iap_setup_guide/texts/create_war/create_project.html
#状況確認
JavaのクラスファイルなどがImportできなくなった時とは以下のような状況のことを言います。
![image.png
abscract classを使ったプログラム
abctract classを使った糸魚川市のプログラムです。
“`Java
package itoigawa;
import java.util.Scanner;abstract class ItoigawaCity{
void ItoigawaCity() {}
}class ItoigawaRikyu extends ItoigawaCity {
private String city = “糸魚川市”;
void ItoigawaCity() {
System.out.println(city);
}
void ItoigawaRikyu() {
String shop_name=”糸魚川利休”;
System.out.println(shop_name);
}
void SetItoigawa(String s) {
if (s.equals(city)== true) {
this.city = s;
} else {
this.city = city;
}}
String GetItoigawa(
Windows10にEclipseを入れてJavaアプレットを動かすまで
Windows10[^win10](64ビット版)が入っているパソコンに日本語化されたEclipse[^eclipse]をインストールしてJavaアプレット[^applet]を動かします。
## 1. 要点
– Java開発キット(Java Development Kit;JDK)と日本語化された統合開発環境[Eclipse](https://www.eclipse.org/)(自動初期設定機能付き)を1つにまとめたものが「[Pleiades All in One Eclipse](https://mergedoc.osdn.jp/)」という名前で配布されています。
– Pleiades All in One Eclipseは圧縮ファイル(ZIP)で配布されていますが、Windows 10標準のファイル解凍機能は[長いパス名](https://docs.microsoft.com/ja-jp/windows/win32/fileio/maximum-file-path-limita
【9/21(火)】仕事で学んだこと
はじめに
9/21(火)に学んだことを次にまとめる。
学んだこと
・エクリプスでのクラス検索
「Ctrl + Shift + R」で検索窓を表示し、任意の検索ワードを入力して検索する。
・テストクラス
記述したプログラムの動作について証明(試験、実験)を行うクラスのこと
・DDL (Data Definition Language)ファイル
データベースを定義するために用いられる言語(SQL)が記述されたファイルのこと
・Eclipseのエラーコード 4499
アプリケーション・サーバーが接続の確立を拒否したことを意味する。
今回の場合、DBがローカルで起動していないことが考えられたので、下記手順を実施した。
1、「コントロールパネル→管理ツール→サービス→【使用しているDBのサービス・プログラム】」を選択。
2、「スタートアップの種類」を「自動」、「サー
【PHP初心者】クラス変数とメンバ変数について
## はじめに
PHPを勉強しているときに「メンバ変数」という表記を目にしました。
過去に少しJavaを勉強していた時があり、「プロパティ」「フィールド」というワードはよく目にしていたのですが、「メンバ変数」はあまり馴染みがなかったのでちょっと調べてみました。メンバ変数とよく対比される「クラス変数」についても併せて見ていきたいと思います。
( 補足:Javaでも「メンバ変数」ってワードはあるようです。私がたまたま出会わなかっただけみたいです。笑)## メンバ変数
調べて見たところ、__「インスタンス変数 = メンバ変数 = プロパティ」__と説明されているページが多く見つかりました。
>__参考:__
[【PHP】インスタンス変数(メンバ変数)](https://algorithm.joho.info/programming/php/instance-variable-php/)
[クラスから理解するPHPのオブジェクト指向](https://rightcode.co.jp/blog/become-engineer/php-object-orientation)
[【PHP入門
VSCodeでSpringBootを開発する
# VSCodeでSpringBootを開発する
## VSCodeの環境構築
### 拡張機能をインストール
「Spring Boot Extension Pack」という拡張機能をインストールする。### JDK11以上をインストール
VSCodeでJavaを開発するために必要な「Language Support for Java(TM) by Red Hat」が、
JDK11以上でないと実行することができない。
そのため、JDK11以上のインストールが必要になる。### setting.jsonの設定
|項目|説明|
|:—|:—|
|java.home|JDK11以上の格納ディレクトリを指定|
|java.configuration.runtimes|プロジェクトで使用するJavaの実行環境を設定|“`
“java.home”: “c:\\jdk-14”,
“java.configuration.runtimes”: [
{
“default”: true,
“name”: “JavaSE-1.8”,
“path”: “C:\\
Java Silver 6章 クラスの継承とポリモフィズム
#継承
既存のクラスをもとに新しいクラスを定義する
継承元のクラスをスーパークラス、新たに定義されたクラスをサブクラスと呼ぶ
![スキャン 2021-09-17 12.38 ページ 2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601137/000f88b7-4382-9827-c3a1-2bfb0ea32a27.jpeg)
継承の役割:差分プログラミング
複数のクラスに共通する処理をスーパークラスに定義し、各クラスで実装したい機能をサブクラスで定義する。スーパークラスから継承するもの
・変数(フィールド)
・メソッド継承しないもの
・コンストラクタ
・privateな変数(フィールド)、メソッド#抽象クラス
クラスを作成する際、その骨組みにあたるクラスを抽象クラス(abstractクラス)と呼ぶ
抽象クラスには処理内容を記述しない抽象メソッド(abstractメソッド)を作成可能
また普通のメソッドと抽象メソッドを混在して使用可能である【アクセス修飾子】abstract cla
【Java】Javaを基礎から固めてオブジェクト指向を身につける①
#目的
* DMMWEBCAPカリキュラムのアウトプット
* Javaを通してオブジェクト指向について知る#実際の手順と実例
###1.オブジェクト指向とはカリキュラムに入る前にオブジェクト指向が何かわからなかったので、そこから触れていきます。
カリキュラム内の定義だと下記の通り
> オブジェクト指向とは、拡張性や保守性の高いプログラムを書くための考え方です。
プログラムが大規模になると複雑になりすぎて、プログラムの追加や修正が難しくなります。オブジェクト指向プログラミングであれば、そのような問題に悩まずに、大規模なプログラムを作成できます。これもJavaが普及した1つの要因です。それならオブジェクト指向は?と聞かれたら、
「拡張性や保守性の高いプログラムを書くための考え方です。」と
答えればいいのか!と思った矢先に、他の記事を見てみると、> オブジェクト指向とは?その答えは1つじゃない!
という記事を発見。
開発工程によってオブジェクト指向の捉え方が違うらしい。参照
https://products.sint.co.jp/topsic/blog/obje
Java Silver SE11を90%正解で合格するまでの道のり
# はじめに
この度、Java Silver SE11 を受験し、無事合格しました!
合格するまでの道のりを、備忘録として残したいと思います。
どの教材を何%正解して受験に挑んだのか、具体的な記録も残してあるので、よければのぞいていってください。# 目次
* [Java Silverってなに?](https://qiita.com/uzura56/items/767915fd42525e052dee#java-silver%E3%81%A3%E3%81%A6%E3%81%AA%E3%81%AB)
* [勉強スタート時の私のレベル](https://qiita.com/uzura56/items/767915fd42525e052dee#%E5%8B%89%E5%BC%B7%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E6%99%82%E3%81%AE%E7%A7%81%E3%81%AE%E3%83%AC%E3%83%99%E3%83%AB)
* [受験前の準備](https://qiita.com/uzura56/items/767915fd42525e
Java再入門 ~Java11 ジェネリクス、ダイアモンド演算子
# ジェネリクス
ジェネリクスは型をパラメータ化することができる仕組みで、Java11どころかJava5からあります。
使わないとListとかMapとかを使えないに等しいような状態になるので、まったく知らないという人もいないと思いますが、自分で型パラメータの宣言をしたことはなかったり、extendsやsuperが出てくると自信がなくなったりする人は少なくないのではないでしょうか。自分で宣言して利用しようとしたときに、まず悩むのはどこに書いたらいいのかです。以下の3パターンあります。
1. クラスに宣言する
2. メソッドに宣言する
3. コンストラクタに宣言する個人的にコンストラクタに宣言したくなったことは一度もないのですが、できるかどうかでいうとできます。
クラスやコンストラクタに宣言する場合の例は以下です。“`java
public class GenericsClass{ T obj;
A piyo;
Huga huga;
public Gener
勉強会用のJavaの資料を作った話
# まとめ
勉強会用の資料を作ったので、共有を楽にするためにアップロードしておいたという話。
# 勉強会について
現在の自分の職場にて新しく勉強会を開くことになり、自分が先陣を切ることにした。
ただし、SESで単独で派遣されている身なので、他の社員の技術レベルは一切わからない。
そのため、下記のような思考で勉強会用の資料を作成した。* すくなくとも、文法を調べる資料は社内にある
* 相手の技術レベルはわからない
* 低いレベルの人でもわかる課題を作りたい
* できるだけ、次回に「良い設計とはなにか」を伝えられるような課題にしたい
* できる人用の内容も盛り込んでおきたい
* どこにでもありそうなかんたんな課題を比較的高度な設計方法によって作成すると新規性が出そう# 資料
そうした結果できたのが、下記の資料である。
プログラミング初心者が書いたオブジェクト指向について①
はじめに
————-
今までPHP/Laravelと学習を進めてきたのですが、そもそもコードの内容をあまり理解しきれていない現状に気づき
色々ありまして現在はJavaの学習を進めています。Javaではオブジェクト指向という考えが非常に重要であり、またその考え方は他の言語にも
共通していくというのを知ったのでアウトプットとして基礎的なことをまとめていきたいと思います。オブジェクト指向とは
———–
**プログラムの機能や役割を区別し、それぞれを部品(オブジェクト)として組み合わせることで1つのプログラムを作ること。**こうやって書くとふーんって感じですが、**現実の世界でも色んな物体が存在して組み合わさっている**と考えると僕は腹落ちしました!
例えば…
・車
→タイヤ、ハンドル、アクセル、ブレーキなどなど
・家
→屋根、扉、壁、床などなど
・人間
→手、足、頭、胴体などなど**現実の世界と同じようにプログラミングの世界も考えた方がわかりやすいね!的な発想がオブジェクト指向なのかなぁと感じました。**
オブジェクト指向の専門用語
–
javaでCUIオセロの制作 その2
#これまで
[前回](https://qiita.com/ymt8781/private/e11a4a70a1cbbbebb55b)でオセロを完成させました。そこにさらにプラスで機能を付けます。今回は対戦相手(CPU)の追加をしていこうと思います。#やり方
CPUのターンで置ける場所を探してから、そこに置くようにします。端からマスに置けるか(裏返せる駒があるか)をチェックしていき、該当したらその場所に置きます。前回は裏返しと可否のチェックが一つのメソッドになっていたので、それを分けようと思います。##変更前
上方向のマスをチェックするメソッドです。これと同じようなものが9方向分あります。裏返せる駒があるかチェックし、裏返せた分だけの数字を返します。“`java:前回
public int turnUp(int y, int x) {int targetY = y – 1;
if(targetY < 0) { return 0; } while(bored[targetY][x] != 0 &&
XiaomiADBFastbootToolsが文字化けしていたときの対処法
私の使っているスマホ、RedmiNote9Tで充電ケーブルを挿すたびに画面が暗転しめっちゃ早く充電してまっせ〜!感を出すだけのこの表示を消したいと思いXiaomiADBFastbootToolsをインストールしてみました。
XiaomiADBFastbootTools
https://smartasw.com/archives/8039
サイトの通りにJava SE v17をMacにインストールし再起動してからXiaomiADBFastbootToolsを起動すると以下のように文字化けをしてしまいました。
[Java17] 新機能 Sealed Classes の詳細# この記事について
Java15からpreview機能としてテストされ,Java17で正式に導入された sealed class について紹介します.クラスやインターフェースを継承・実装できるものを制限できます.
以下のように,既存の要素を変更するものではありません.
+ `friend` のような新しいアクセス制御を提供するものではない
+ `final` のはたらきを変更するものでは決してない## 出展
この記事は基本的に [JEP 409](https://openjdk.java.net/jeps/409) に基づきます.また,各所で[Java言語仕様](https://docs.oracle.com/javase/specs/jls/se17/html/index.html)を参照しています.
# Sealedクラスの宣言
クラスに `sealed` 修飾子をつけるとSealedクラスになります.さらに,`extends`節や`implements`節の後に`permits`節を付けて,自身を継承可能なクラスを明示できます.
次の例では,`Shape`
Java17でEither書く
# はじめに
たまたま最近、業務でエラーかノーマルを保持するオブジェクトのレビューが上がってきた時に、「Eitherにすれば?」と言ったのだが、Javaには`Optional`はあるが`Either`に相当するようなクラスがない。
作るとしたらこんな感じかな〜、というのをリリースされたLTS版Java17を使いながら書いてみる。(結局、レビュー指摘はコミットされなかったが・・・。)# Either
“`java:Either.java
import java.util.function.Function;
import java.util.function.Consumer;//Eitherインターフェイス
public sealed interface Eitherpermits Either.Left,Either.Right{
public boolean isLeft();default boolean isRight(){
return !this.isLeft();
}public Either
f
WSL2上でIntelliJ IDEAでJava開発
## WSL2上の実行環境で、WindowsからIntelliJ IDEA Communityを起動して開発する
### Windows側
– IntelliJ IDEA Communityをインストール
– WSL2をインストール### WSL2側
– WSL2上にJDKをインストール
“`sh
$ sudo apt update
$ sudo apt install openjdk-11-jdk#確認
$ sudo update-alternatives –list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java# JAVA_HOMEの設定
$ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64$ java -version
openjdk version “11.0.11” 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-
(JAVA勉強用メモ)8. 関数型インタフェース、ラムダ式
## 関数型インタフェース
抽象メソッドを1つだけ持つインタフェース## ラムダ式
関数型インタフェースの実装を簡易に行う記述方法“`java:Sample.java
public interface Sample {
void sample(String val);
}
“`“`java:Main.java
public class Main {
public static void main(String[] args) {
Sample s = (val) -> {
System.out.println(“Hello, ” + val);
};
s.sample(“Qiita”); // “Hello, Qiita”
}
}
“`## ラムダ式の記述省略
“`java
Function f = (int a, int b) -> { return a * b; }; // 基本形
Function f = (a, b) -> { return a * b; }; // 引数の型を省略可
Fu
[Java基礎⑧] 二次元配列の基本・for文/拡張for文で出力
初めに
今回、二次元配列を学習し、その中身をfor文で取り出すということを
行いました。二次元配列とは
2つのインデックスで要素を指定する配列のこと
“`java:
//ひとまず3つの配列を用意します。
String[] teamA = {“りんご”,”なし”,”洋梨”};
String[] teamB = {“青森”,”岩手”,”宮城”};
String[] teamC = {“お皿”,”コップ”,”茶碗”};//配列に配列を格納します。
String[][] teams = {teamA,teamB,teamC}//以下では、「りんご」が出力されます。
System.out.print(teams[0][0])
//以下では、「青森」が出力されます。
System.out.print(teams[1][0])
//以下では、「コップ」が出力されます。
System.out.print(teams[2][1])//インデックスの更新 「りんご」→「みかん」へ
team[0][0] = “みかん”;
//「みかん」が出力されます
【初心者】インターフェースについて
#はじめに
社内研修で、インターフェースについて教えてもらった。「インターフェースとは、メソッドの定義と変数の定義を行うだけで、処理は一切行わない。」
なんとなく意味はわかったのだが、より理解を深めるために記事を書いていこうと思う。
#インターフェースとは
どのようなものなのかネットで調べていき、次のような内容であることがわかる。「変数の定義をしておらず、抽象メソッド(処理内容を記述していないメソッド)のみを
定義したものである。」より理解を深めていくために、ソースコードを書いていこうと思う。
#インターフェースの実装
インターフェースの宣言から実装までの流れを次のように行う。・インターフェースの宣言
クラス名の前に「interface」を付けてクラス宣言を行う。
メソッドの宣言のみを行い(戻り値、引数の指定はできる)、処理は記述しない。“`
public interface test1{
public void method();
//処理は記述しない。
}“`
・インターフェースの実装
クラス作成後、「impleme