javaでプログラミングしていると必ずと言っていいほど「オーバーロード」や「オーバーライド」という言葉が出てきます。復習も兼ねて今回は両者の違いについて整理してみます。
オーバーロードとは
同一クラス内の同一メソッド名で、「引数の型」、「引数の数」、「引数の並び順」のいずれかが異なるメソッドを複数定義すること。
同一クラス内の同一メソッド名でも「戻り型」、「アクセスレベル」、「引数名」、「throws節」が不一致している場合はオーバーロードとは見做されないのでコンパイルエラーになります。
Javaでのオーバーロード実装例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class OverLoadSample {
/**
* <p>[概 要] オーバーロードサンプルメソッド1</p>
* <p>[詳 細] </p>
* <p>[備 考] </p>
* @param lang プログラミング言語
*/
public static void dispMessage ( String lang ) {
System . out . println ( "得意なプログラミング言語は「" + lang + "」です。" ) ;
}
/**
* <p>[概 要] オーバーロードサンプルメソッド2</p>
* <p>[詳 細] </p>
* <p>[備 考] </p>
* @param country 国名
* @param lang プログラミング言語
*/
public static void dispMessage ( String country , String lang ) {
System . out . println ( "私の母国は「" + country + "」です。" ) ;
System . out . println ( "得意なプログラミング言語は「" + lang + "」です。" ) ;
}
}
JUnit
import org . junit . Test ;
public class OverLoadSampleTest {
@Test
public void dispMessageTest ( ) {
// 「オーバーロードサンプルメソッド1」の実行
OverLoadSample . dispMessage ( "JavaScript" ) ;
// 「オーバーロードサンプルメソッド2」の実行
OverLoadSample . dispMessage ( "日本" , "JavaScript" ) ;
}
}
実行結果(コンソール)
得意なプログラミング言語は「JavaScript」です。
私の母国は「日本」です。
得意なプログラミング言語は「JavaScript」です。
オーバーライドとは
親クラス(スーパークラス)で定義されているインスタンスメソッドを、子クラス(サブクラス)で再定義すること。
親クラス(スーパークラス)のメソッドを変更することは出来ませんが、子クラス(サブクラス)に特化した機能を付与する事は可能です。
アクセス修飾子が「private」以外でオーバーライドは適用対象となります。(例:「public」・「protected」)
オーバーライドする側はオーバーライドされる側と「戻り型」、「メソッド名」、「引数型」、「引数の数」が全て一致する必要があります。どれか一つでも異なる場合はオーバーライドとは見做されません。
Javaでのオーバーライド実装例
スーパークラス(親クラス)
public class OverRideParent {
/**
* <p>[概 要] オーバーライドサンプル スーパークラス用メソッド</p>
* <p>[詳 細] </p>
* <p>[備 考] </p>
* @param lang プログラミング言語
*/
public static void dispMessage ( ) {
System . out . println ( "得意なプログラミング言語はCです。" ) ;
}
}
サブクラス(子クラス)
public class OverRideChild1 extends OverRideParent {
/**
* <p>[概 要] オーバーライドサンプル サブクラス用メソッド1</p>
* <p>[詳 細] </p>
* <p>[備 考] </p>
* @param lang プログラミング言語
*/
public static void dispMessage ( ) {
System . out . println ( "得意なプログラミング言語はJavaです。" ) ;
}
}
public class OverRideChild2 extends OverRideParent {
}
JUnit
import org . junit . Test ;
public class OverRideSampleTest {
@Test
public void dispMessageTest ( ) {
// 「オーバーロードライドサブクラス用メソッド1」の実行
OverRideChild1 . dispMessage ( ) ;
// 「オーバーロードライドサブクラス用メソッド2」の実行
OverRideChild2 . dispMessage ( ) ;
}
}
実行結果(コンソール)
得意なプログラミング言語はJavaです。
得意なプログラミング言語はCです。
CSSでスタイルを設定していると「margin」と「padding」の基礎知識が曖昧だと使用する際に混乱しがちなので今回は両者の違いをまとめてみます。
marginとpaddingの関係図
marginの特徴
borderの外側にスペース(余白)が設けられる
スペース(余白)に背景色は適用不可
marginに負数(-5pxなど)が使用可能
隣接した要素と相殺される(されないケースもあります)
paddingの特徴
borderの内側にスペース(余白)が設けられる
スペース(余白)に背景色を適用可能
paddingに負数(-5pxなど)は使用不可
隣接した要素と相殺されない
Windows XPのサポートが「2014年04月09日」で打ち切られた事もあり、OSのバージョンアップで「Windows7」と「Windows8」のどちらにしようか迷っている方も多いかと思います。今回は両者の違いについてまとめてみます。現状ではインターフェース面でXPと違和感なく操作出来ることから、個人・企業共にWindows7へ切り替えてるユーザーが圧倒的に多いようです。
項目 Windows7 Windows8 備考
インターフェース(UI) インストール後そのままXPと違和感なく使用可能 Padなどのタブレット操作を想定しているので、慣れるまで相当な時間を要する
XPモード ○ × サードパーティーの仮想化ソフト(VMwareやVirtualBoxなど)を使用すれば可能。但し、XPモードは使用出来ないのでライセンス的に使用可能なWindows XPが別途必要。
スタートボタン ○ × Windos8.1から標準復活
SSDを最適化する「トリム」機能 別途ソフトウェアをインストールする必要あり 標準装備
起動時間 × ○ 起動時間については40%程Windows8の方が早くなるが、Windows7でもSSDを利用すればあまり違和感はない
サポート期間(2014年04月12日時点) 2020年01月14 日 2023年1月10日
※Windows8.xに常にアップデートし続けることが前提
ざっと特徴をまとめてみましたが、結論としてあくまで業務などでWindowXPからのバージョンアップを望むならWindows7を選択するべきでしょう。
これはOffice2013にも共通していることですが、Windows8はMicrosoft社の提供するクラウドサービス「SkyDrive」を半強制的に利用させようとしている節が伺えます。個人利用や業務で利用しているPCでのクラウドサービスの利用は当然セキュリティリスク面で不安になるのが当然ですし、「SkyDrive」に保存されているデータが某国の情報機関へ横流しされているなんて噂も出ている程です。クラウドサービスを利用することでデータ共有などの利便性が向上するのは確かですが、それゆえに発生するリスク面にも目を向けて利用するように心がけましょう。
ホームページのアドレス部分「http://www.~」を指す場合、「URL」と言ったり「URI」と言ったりしてるのを聞いた事がないでしょうか?一体どちらを使用するのが正しいのか疑問に思う方もいらっしゃると思うので整理しておこうかと思います。
URLとは
URLは「Uniform Resource Locator」の略称。
URLはURIの部分集合。
URIとは
URIは「Uniform Resource Identifier」の略称。
RFC3986で規定されている。
URIはURLとリソース名を示すURN「Uniform Resource Name」を含む言葉。
正式名称を見てみると「URI」、「URL」、「URN」どれもリソースを表していますが、リソースを識別する意味で使用するのなら「URI」を使用すべきです。
ニュースなどでも取り上げられていますが、いよいよ本日「2014年04月09日」を持って長らくサポートしていた「Windows XP」や「Microsoft Office 2003」のサポートが打ち切られます。発売してから10年以上もサポートし続けていたのだから、まあこの辺が頃合いなのかなあと個人的には感じています。むしろ10年以上もよく持ったものだと関心する位ですが。しかし、個人ユーザから一般企業に至るまで広く使用されていたOSのサポート打ち切りとなると、世間的にインパクトはかなり大きいです。Windows7や8に以降するにしても無料ではないので、まだ移行出来していない方というのは特に資金面で厳しいユーザが多いのではないかと思われます。そこで、今後もWindow XPを使用し続けることのリスクについてまとめてみました。
サポートが打ち切られるとどうなるの?
⇒今後、セキュリティホールが発見されてもMicrosoftは一切パッチを提供しませんので、Window Updateを実行してもパッチは当てられなくなります。
ウィルス対策ソフトを最新にしていれば問題ないのでは?
⇒いくらウィルス対策ソフトを最新にしていても、OSそのものにセキュリティホールが残っている状態というのは、玄関の鍵は掛けてるけど窓ガラスは割れているという状態なのでハッカーなどからの攻撃は防げません。
それでも資金的に厳しいのでXPを使い続けたい場合はどうすればいいの?
⇒サポートが切れるだけでOSはこれまで通り動作しますので使用し続ける事は可能です。ですが以下の対策は必須と思われます。
インターネット環境に接続せず、完全オフライン状態で使用する。
USBなどの外部媒体は極力使用しない。
ウイルス対策ソフトを常に最新にしておく。
クレジットカード情報などの個人情報はPC上に保存しない。
ふとエスケープとエンコードの違いって何だろうと思ったので整理してみました。
どちらも「一定の規則に従い別の記号や文字列に置換する」という点では同義語に見えますが、根本的にその性質は全く異なるものです。
エスケープ
HTMLでは「< 」を「&gt;」へ変換することをエスケープ処理と呼称します。この場合、画面上はエスケープしても「
エンコード
情報を暗号や通信に適した形式(コード)に変換すること。動画などの場合、この「形式」のことをコーデックと呼びます。
例えばURLコードへエンコードすると「半角スペース」は「%20」へ置換されます。そしてURLを見てみるとエンコード後の文字列がそのまま表示されています。
投稿ナビゲーション
「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。