CodeGym
キャンペーン
学習
コース
課題
アンケート & クイズ
ゲーム
ヘルプ
スケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
成功事例
アクティビティ
レビュー
サブスクリプション
ライトテーマ

レッスン

  • レビュー
  • 私たちについて
開始
学習開始
今すぐ学習を始める
  • 学習の進捗
  • コース
  • クエストマップ
  • レッスン
  • 抽象と継承階層の実装

    JAVA 25 SELF
    レベル 19,レッスン 2
    Java におけるクラス階層の構築に関する実践ガイド: 抽象から詳細へ。図形、ミニエディタ、決済、輸送の例を通して、共通部分を基底の abstract クラスへ切り出し、 area()/ draw() のようなメソッドをオーバーライドし、コードを書き換えずにシステムを拡張し、重複を避ける方法を示します。最後に、よくあるミスと設計のコツを概観します。
    利用可能
  • 実務の課題における抽象化の例

    JAVA 25 SELF
    レベル 19,レッスン 3
    実務的なシナリオ(決済・交通手段・グラフィックエディタ)で抽象化を適用する練習をします。共通の振る舞いを基底の abstract クラスに切り出し、共通の契約で扱い、分岐だらけの if- else コードを多態性(ポリモーフィズム)に置き換える方法を示します。あわせて、 process()、 move()、 draw()/ resize() といったメソッドを一貫した方法で呼び出し、コードを柔軟かつ拡張可能にするコツも見ていきます。
    利用可能
  • 抽象化による複雑なシステムの単純化

    JAVA 25 SELF
    レベル 19,レッスン 4
    複雑なアプリケーションを抽象化レベル(UI、ビジネスロジック、データアクセス)に分解し、コードをわかりやすく拡張しやすく保つ方法。実践ではミニ・タスクマネージャーを Task、 TaskRepository、 TaskService の各層で構築し、実装の差し替えとチームへの利点を示します。ベストプラクティス、典型的なミス、 OrderService/ OrderRepository を用いた例、さらに saveOrder() や findUserById() のようなメソッドも取り上げます。
    利用可能
  • インターフェースの概念と宣言の構文

    JAVA 25 SELF
    レベル 20,レッスン 0
    この講義では、Java におけるインターフェースとは何か、キーワード interface を使ってどのように宣言するか、クラスが implements でどのように契約(コントラクト)を実装するか、そしてデフォルトでメソッドが public abstract と見なされる理由を学びます。インターフェースとクラスの違い、JDK の例( Comparable、 Runnable、 Serializable)、図による説明、典型的なミスについても解説します。
    利用可能
  • インターフェースと抽象クラスの違い

    JAVA 25 SELF
    レベル 20,レッスン 1
    この講義では、Java におけるインターフェースと抽象クラスを比較します。どちらを選ぶべきか、機能や制約の違い、シグネチャ( abstract class と interface)、 public、 abstract、 static のような修飾子の意味、JDK の例、実践的なケース、よくあるミス(継承、実装、 implements/ extends の使い方)も取り上げます。
    利用可能
  • インターフェースの多重実装

    JAVA 25 SELF
    レベル 20,レッスン 2
    本講義では、Java の1つのクラスが複数のインターフェースを同時に実装する方法を解説します。キーワード implements の構文、役割の組み合わせ(例: Movable、 Attackable、 Serializable)、メソッドシグネチャの一致、いわゆる「ダイヤモンド問題」が起きないこと、そして default メソッドが衝突した場合の対処について説明します。実践的な例と、よくある誤りの解説も含まれます。
    利用可能
  • 関数型インターフェース: @FunctionalInterface

    JAVA 25 SELF
    レベル 20,レッスン 3
    この講義では、関数型インターフェース(抽象メソッドがちょうど 1 つ)とは何か、注釈 @FunctionalInterface でどのように、そしてなぜ明示するのか、 default メソッドや static メソッドでどこまでインターフェースを拡張できるのか、さらに実務での使い方(通常のクラスと匿名クラス)を解説します。 Runnable、 Comparator<T>、および java.util.function の各インターフェースの例に、表と典型的なミスの解説を添えます。
    利用可能
  • Javaのアーキテクチャにおけるインターフェースとデザインパターン

    JAVA 25 SELF
    レベル 20,レッスン 4
    インターフェースがコードを柔軟なアーキテクチャへと変えるしくみ: 抽象に対してプログラミングし、 DI で依存関係を注入し、テストで実装を差し替え、コアを変更せずに新しい振る舞いを追加する( OCP)。インターフェースが Observer、 Strategy、 Command の基盤であることを解説し、 UserRepository、 NotificationSender、支払い戦略などの例で実践を示します。
    利用可能
  • ラムダ式入門

    JAVA 25 SELF
    レベル 21,レッスン 0
    この講義では Java のラムダ式を取り上げます。何であり何のために必要なのか、構文と省略記法、ラムダが関数型インターフェース( @FunctionalInterface)とどう関係するのか、匿名クラスとの違い、そして変数キャプチャ( final / effectively final)の仕組みを解説します。 Runnable、 Consumer、 Comparator、 Function と Stream API の実例で、より短く分かりやすく書く方法を学びます。最後は「よくある間違い」と、それを避けるコツで締めくくります。
    利用可能
  • Method References (::): メソッド参照

    JAVA 25 SELF
    レベル 21,レッスン 1
    Java におけるメソッド参照のクイックガイド: ラムダの代わりに method reference をどこで、どのように使うか。4 つの形を扱います: Class::method(静的および「インスタンスに対する」)、 object::method、 Class::new。関数型インターフェースとのシグネチャの対応を理解し、ラムダ式と比較し、 forEach、 sort、 map の実例を見て、よくあるミス(シグネチャ不一致、メソッドのオーバーロードなど)を議論します。
    利用可能
  • インターフェースのdefaultメソッド

    JAVA 25 SELF
    レベル 21,レッスン 2
    この講義では、Java 8 でインターフェースに登場した defaultメソッドがなぜ必要とされたのか、既存コードを壊さずに API を進化させる仕組み、その構文(戻り値の型の前に defaultキーワードを付ける)と実装での挙動を解説します。標準ライブラリの例( List: forEach、 replaceAll、 sort)を使って実践的な利用法を見ていきます。制約についても扱います: Object のメソッド( equals/ hashCode/ toString)は上書きできないこと、複数実装時の衝突解決のルール、そしてよくあるミスです。
    利用可能
  • インターフェースの static メソッド

    JAVA 25 SELF
    レベル 21,レッスン 3
    Java のインターフェースがなぜ・どのようにして static メソッドを持つようになったのかを解説します: 宣言の構文、 default メソッドとの違い、主要な制約(継承されない、オーバーライドできない、呼び出しはインターフェース名経由のみ、アクセスできるのは static メンバーのみ、Java 9+ の private static 対応)。実例として Movable.resetPosition()、補助的な Logger、コレクションのファクトリ List.of()/ Set.of()/ Map.of()、ユーティリティ Comparator.reverseOrder() を見ていきます。最後に — よくあるミスとその回避方法も紹介します。
    利用可能
  • 1
  • ...
  • 9
  • 10
  • 11
  • 12
  • 13
  • ...
  • 30
学ぶ
  • 登録
  • Javaコース
  • 課題のサポート
  • 料金
  • ゲームプロジェクト
  • Java構文
コミュニティ
  • ユーザー
  • 記事
  • フォーラム
  • チャット
  • 成功事例
  • アクティビティ
  • アフィリエイトプログラム
会社情報
  • 私たちについて
  • 連絡先
  • レビュー
  • プレスルーム
  • CodeGym for EDU
  • よくある質問
  • サポート
CodeGymCodeGym は、ゼロからJavaプログラミングを学ぶためのオンラインコースです。このコースは初心者がJavaを習得するのに最適です。即時検証付きの1200以上の課題と、Java基礎理論の必要な範囲を含みます。学習の成功を支援するために、クイズ、コーディングプロジェクト、効率的な学習に関するコンテンツ、Java開発者のキャリアに関する機能など、一連のモチベーション機能を導入しています。
フォローする
インターフェース言語
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands
日本語
한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym
MastercardVisa
「プログラマーは生まれるのではなく、育てられる」 © 2026 CodeGym