- 投稿日:2020-06-19T23:40:32+09:00
javac, jar, javaコマンドチートシート
Javaでプログラムを作成後の実行までの順序。
- compile。
javacコマンドを使う。- jarファイルの作成。
jarコマンドを使う。- run。
javaコマンドを使う。javacコマンド
help
javac --help
javac -help,javac -?も同じ。
javac -hは別物。compile Java8以前 module不使用
compile-java8-earlier-none-module.shjavac -d /path/to/bin/directory \ --class-path /path/to/files1:/path/to/files2 \ --release 8 \ $(find /path/to/src/directory -name "*.java")
--releaseでversion選択。
$(find /path/to/src/directory -name "*.java")で指定ディレクトリ内の*.javaを全てコンパイルする。compile Java9以降 module使用
compile-java9-later-with-module.shjavac -d /path/to/bin/directory \ --module-path /path/to/module/dir1:/path/to/module/dir2 \ --release 11 \ $(find /path/to/src/directory -name "*.java")jarコマンド
help
jar --help
jar -?,jar -hも同じ。create
jar-create-simple.shjar -c \ -f /path/to/Export.jar \ -C /path/to/src/directory .
-Cを使うときは、末尾に.を忘れないこと。create Executable-jar
jar-create-executable.shjar -c \ -f /path/to/Executable.jar \ -e package.to.MainClass \ -C /path/to/src/directory .
-eでエントリーポイントを指定する。javaコマンド
help
java --helprun
run.shjava -cp /path/to/file1:/path/to/file2 \ package.to.MainClassrun Executable-jar
run-executable-jar.shjava -cp /path/to/file1:/path/to/file2 \ -jar /path/to/Executable.jarrun Java9以降 module使用
run-with-module.shjava --module-path /path/to/module/dir1:/path/to/module/dir2 \ --module name.of.module/package.to.MainClassbuild and run sample
build and run Java8以前 module不使用
build-and-run-none-module.sh#!/bin/sh path_src="/path/to/src/directory" path_bin="/path/to/bin/directory" path_export_jar="/path/to/Export.jar" path_lib="/path/to/lib/*" entry_point="package.to.MainClass" version="8" # compile javac -d ${path_bin} \ --class-path ${path_lib} \ --release ${version} \ $(find ${path_src} -name "*.java") # jar jar -c \ -f ${path_export_jar} \ -C ${path_bin} . # run java -cp ${path_lib}:${path_export_jar} \ ${entry_point}build and run Java9以降 module使用
build-and-run-with-module.sh#!/bin/sh path_src="/path/to/src/directory" path_bin="/path/to/bin/directory" path_export_jar="/path/to/Export.jar" path_lib="/path/to/lib" entry_point="name.of.module/package.to.MainClass" version="11" # compile javac -d ${path_bin} \ --module-path ${path_lib} \ --release ${version} \ $(find ${path_src} -name "*.java") # jar jar -c \ -f ${path_export_jar} \ -C ${path_bin} . # run java --module-path ${path_lib}:${path_export_jar} \ --module ${entry_point}
- 投稿日:2020-06-19T23:35:10+09:00
javaのインスタンスについて
プログラミング学習の総合サイト
侍エンジニア塾ブログロゴ
BLOG
ブログ
SERVICE
事業内容
COMPANY
会社案内
RECRUIT
採用情報
無料体験レッスン
ホーム
インタビュー
カリキュラム
チュートリアル
学習コラム
学習プラン診断
無料学習相談
Python, フリーランススライドショー
ブログトップ > プログラミング > Java > Java 入門
【Java】String型をint型に変換する
オータケ オータケ
2017/1/242019/6/4
こんにちは!フリーランスのオータケです。
皆さんはJavaの文字列をint型に変換する方法を覚えていますか?
また、int型の数値を文字列に変換する方法を覚えていますか?変換に失敗した場合はどうなるか知っていますか?この記事を見ればJavaの文字列をint型に変換する方法がわかりやすく学べます!
この記事では、文字列をint型に変換する方法について
String型からint型への変換方法
String型からその他の数値型への変換方法
数値型からString型への変換方法
String型の値が数値かチェックする
など具体的な内容についても解説していきます。今回は文字列をint型に変換する方法について、使い方をわかりやすく解説します!この記事の目次
1 String型と数値型との型変換メソッド一覧
2 String型からint型への変換方法(parseInt)
3 String型からその他の数値型への変換方法
3.1 byte型への変換(parseByte)
3.2 short型、long型への変換(parseShort、parseLong)
3.3 小数値(float, double)への変換(parseFloat、parseDouble)
3.4 valueOfメソッドを使う方法
4 数値型からString型への変換方法
4.1 valueOfを使う方法
4.2 toStringを使う方法
5 String型の値が数値かチェックする
5.1 try-catch文で例外処理
5.2 正規表現でチェック
6 Stringの使い方の総まとめ記事はこちら
7 まとめ
String型と数値型との型変換メソッド一覧
Sting型⇔数値型変換のメソッド、書き方について表にまとめました。変換前の型 変換後の型 メソッド 書き方例
String int Integer.parseInt
Integer.valueOf Integer.parseInt("1")
Integer.valueOf(“1”)
byte Byte.parseByte
Byte.valueOf Byte.parseByte(“1”)
Byte.valueOf(“1”)
short Short.parseShort
Short.valueOf Short.parseShort(“1”)
Short.valueOf(“1”)
long Long.parseLong
Long.valueOf Long.parseLong(“1”)
Long.valueOf(“1”)
float Float.parseFloat
Float.valueOf Float.parseFloat(“1”)
Float.valueOf(“1”)
double Double.parseDouble
Double.valueOf Double.parseDouble(“1”)
Double.valueOf(“1”)
数値型(int, byte, short, long, float, double) String String.valueOf String.valueOf(1)
int String Integer.toString Integer.toString(1)
byte String Byte.toString Byte.toString((byte)1)
short String Short.toString Short.toString((short)1)
long String Long.toString Long.toString(1l)
float String Float.toString Float.toString(1.0f)
double String Double.toString Double.toString(1.0)
String型から数値型への変換はparseInteger、paraseByte、parseFloatなどのメソッドやvalueOfメソッドが使用できます。数値型から文字列型への変換はvalueOfメソッドやtoStringメソッドが使用できます。それぞれの使用例についてサンプルコードで確認していきましょう。
String型からint型への変換方法(parseInt)
文字列をint型の数値に変換するには下記のようなサンプルコードになります。IntegerクラスのparsIntやvalueOfを使うことでint型に変換が可能です。
public class Main {
public static void main(String[] args) {String hoge = "1"; int num = Integer.parseInt(hoge); System.out.println(num); }}
実行結果:1
String型からその他の数値型への変換方法
文字列から数値に変換するためにはそれぞれの目的にあったメソッドを使うことで実現することができます。byte型への変換(parseByte)
文字列をbyte型の数値に変換するには下記のようなコードを書きます。ByteクラスのparseByteを使うことでbyte型に変換が可能です。public class Main {
public static void main(String[] args) {String hoge = "1"; byte result = Byte.parseByte(hoge); System.out.println(result); }}
実行結果:1
short型、long型への変換(parseShort、parseLong)
short型、long型の場合は下記のようになります。short型への変換の場合、ShortクラスのparseShortメソッドを使いましょう。long型への変換はLongクラスのparseLongメソッドを使います。
public class Main {
public static void main(String[] args) {String hoge = "1"; short result1 = Short.parseShort(hoge); System.out.println(result1); long result2 = Long.parseLong(hoge); System.out.println(result2); }}
実行結果:1
1
小数値(float, double)への変換(parseFloat、parseDouble)
byte型への変換やint型への変換と同様、小数点に変換する場合は下記のようにします。float型への変換はFloat.parseFloatメソッドを使いましょう。そしてdouble型への変換はDouble.parseDoubleメソッドを使います。
public class Main {
public static void main(String[] args) {String hoge = "1"; float result1 = Float.parseFloat(hoge); System.out.println(result1); double result2 = Double.parseDouble(hoge); System.out.println(result2); }}
実行結果:1.0
1.0
valueOfメソッドを使う方法
今解説したそれぞれのInteger、Short、LongといったクラスにはvalueOfメソッドというものが存在しています。このメソッドを使うことで文字列を変数に変換することができます。各型クラスのvalueOfメソッドを使った場合は戻り値はその型クラスと同じ型で返すようになっています。
public class Main {
public static void main(String[] args) { String hoge = "1"; System.out.println(Integer.valueOf(hoge)); System.out.println(Byte.valueOf(hoge)); System.out.println(Short.valueOf(hoge)); System.out.println(Long.valueOf(hoge)); System.out.println(Float.valueOf(hoge)); System.out.println(Double.valueOf(hoge)); }}
実行結果:1
1
1
1
1.0
1.0
このサンプルコードでは、例えば1番目にIntegerのvalueOfメソッドを呼び出しているので呼び出し後、Integerクラスに変換しています。数値型からString型への変換方法
次に数値を文字列に変換する方法を見てみましょう。valueOfを使う方法
valueOfというメソッドを使って文字列に変換する方法を見てみましょう。先程の「文字列から数値への変換」でvalueOfを使うと解説しました。数値から文字列への変換でも同様にvalueOfを使うことができます。
public class Main {
public static void main(String[] args) {int num = 1; String str = String.valueOf(num); System.out.println(str); }}
実行結果:1
このサンプルコードではint型の変数をString.valueOfメソッドを使って文字列に変換しています。toStringを使う方法
IntegerクラスやFloatクラスといったクラスにはtoStringメソッドが備わっておりこのメソッドを使うことで文字列に変換することが可能です。public class Main {
public static void main(String[] args) { System.out.println(Integer.toString(1)); System.out.println(Byte.toString((byte)1)); System.out.println(Short.toString((short)1)); System.out.println(Long.toString(1l)); System.out.println(Float.toString(1.0f)); System.out.println(Double.toString(1.0)); }}
実行結果:1
1
1
1
1.0
1.0
このサンプルコードのような形でtoStringメソッドを呼ぶと文字列へ変換して返してくれます。String型の値が数値かチェックする
もし、型変換ができなかった場合どうなるかサンプルコードを見てみましょう。public class Main {
public static void main(String[] args) { System.out.println(Integer.parseInt("aa")); System.out.println(Integer.valueOf("aa")); }}
このサンプルコードを実行しようとすると例外やコンパイルエラーが発生して実行できなくなります。引数に渡す際には正しい数値でなければなりません。ですので、型変換を行う前にString型の値が数値かチェックするようにしましょう。String型の値が数値かチェックする方法は2つあります。
try-catch文で例外処理
正規表現でチェックそれぞれの方法について詳しく確認していきましょう。
なお、Apache Commons LangのNumberUtils#isNumberメソッドを使う方法もありますが、標準ライブラリではないため説明は割愛します。try-catch文で例外処理
try-catch文でStringの値が数値でなければ、例外処理を行うように記述します。public class Main {
public static void main(String[] args) { try { System.out.println(Integer.parseInt("-10")); System.out.println(Integer.valueOf("aa")); } catch (NumberFormatException e) { System.out.println(e); } }}
実行結果:-10
java.lang.NumberFormatException: For input string: "aa"
このサンプルコードでは、Integer.parseIntメソッドの引数の文字列は数値ですが、Integer.valueOfメソッドの引数の文字列は数値ではありません。引数の文字列が数値でない場合は例外処理を行うようにtry-catch文で記述しています。
正規表現でチェック
正規表現のパターンを指定して、文字列が数値かどうかチェックする方法は以下のようになります。import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Main {
public static void main(String[] args) { String str1 = "-10"; String str2 = "aa"; // 正規表現の設定 String regex = "^-?[0-9]*$"; Pattern p = Pattern.compile(regex); Matcher m1 = p.matcher(str1); Matcher m2 = p.matcher(str2); if(m1.find()) { System.out.println(Integer.parseInt(str1)); } if(m2.find()) { System.out.println(Integer.valueOf(str2)); } }}
実行結果:-10
このサンプルコードでは、String型変数regexで正規表現のパターンをマイナス値も含む整数に指定しています。整数の正規表現のパターンと合致する場合は、整数値に変換され出力表示されます。合致しない場合は出力表示されていません。
なお、正規表現で文字列をチェックするパターンの書き方については、こちらでくわしく説明していますので参考にしてくださいね。
【Javaで正規表現】文字列をチェックするパターンの書き方とサンプル
更新日 : 2019年4月23日
Stringの使い方の総まとめ記事はこちら
Stringのさまざまな使い方についてはこちらで詳しく解説しているので、ぜひ確認してください!【Java String】7つの基本的な使い方で文字列操作を理解しよう
更新日 : 2019年5月7日
まとめ
今回は文字列をint型に変換する方法について解説してきましたが、いかがでしょうか?String型から数値型への変換はparseInteger、paraseByte、parseFloatなどのメソッドやvalueOfメソッドを使いましょう。数値から文字列はvalueOfかtoStringを使いましょう。
忘れてしまった場合、ぜひこの記事を思い出して下さい!
LINEで送る
ITエンジニアへ転職したい方におすすめ
自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。
こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。
そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。
侍ワークスは、独自案件を多く掲載しているだけでなく、
・応募から就業まで一貫したサポート
・就業後もアフターフォローといった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。
まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ!
侍ワークスの求人情報を見る
オータケ
オータケ
30歳、フリーランスプログラマ。中学の頃よりプログラミングに興味を持ちゲーム開発やWebサイト構築などを経験
新しいフレームワークやライブラリに興味があり革新的な機能が含まれていると泣いて喜ぶ。すべての記事を見る
この記事のあとによく読まれています!Java
【Java入門】switch-case文の使い方
2017/3/272017/6/7
Java
【Java入門】interfaceとimplementsの使い方を基礎の基礎から解説!
2017/4/192019/4/16
Java
【5分でJava入門】MapのcontainsKeyの使い方と速度まとめ
2017/3/72019/10/23
Java
JavaとJavaScriptって何が違うの?わかりやすく4つの違いで徹底分析
2017/9/22019/11/7
Java
【Java入門】String型の文字列をequalsで比較する方法
2017/3/132017/12/15
Java
【Java入門】Loggerの使い方(ログレベル、出力先の設定も解説)
2018/6/272019/5/2
カテゴリー
トップ
インタビュー
学習コラム
カリキュラム
チュートリアル
学習診断
無料学習相談
カリキュラム
プログラミング入門
Ruby 入門
Swift 入門
Java 入門
Python 入門
JavaScript 入門
運営会社
会社概要
代表挨拶
採用情報
お問い合わせ
プライバシーポリシー
侍エンジニア塾ブログロゴ
facebook twitter youtube
©Samurai, Inc. All Rights Reserved.
- 投稿日:2020-06-19T21:52:02+09:00
かつて見たびっくりクソコード
概要
@rana_kualu さんの記事に触発されて、
自分が今まで見かけたなかでもヤバめのクソ コードについて書いてみる。(元記事)
・これまで見た中で最も汚いソースコード - Qiita
https://qiita.com/rana_kualu/items/2f3c40642836c11f5ddcクソ コード
① typedef
再現コード.ctypedef void coid; typedef void boid;キーボードを見ると [c] [v] [b] が並んでいる。
即ちこれは、 タイプミスを型名の再定義でカバー しているというもの。
流石にコレは プログラムではない、と思った。② マイナス1万
変数名はとりあえず適当。
再現コード.php$date0 = '20201122'; //画面からYYYYMMDDで文字列が来る $date1 = $date0 -10000; $year = substr($date1, 0, 4); $month = substr($date1, 4, 2); $day = substr($date1, 6, 2);なんだこの1万を引いている処理は・・・。
(当時の)同僚が保守中の仕組みからこのコード見つけ、一緒に悩んだ。
日付系処理では1万はキリが悪い。。。
幸いにも書いた輩が隣に居たので直接聞いてみた。1年前を計算している
なるほど!
書き直せ!
幸いにも書いた輩が高校から友人(同級生)だったので、とりあえず殴った。
日付操作は日付操作用の関数がちゃんとあるので、それを使いましょう。
(と言うか、私は静的型畑の人間なので、動的型変換の使い方にも膝が震えた。)③ たこいかぱにっく
再現コード.javaboolean checkNumber (str) { boolean isNumber = !NumberUtils.isNumber(str); if(isNumber) { //エラーメッセージ処理処理 } return !isNumber; }ツッコミどころ
- 変数名が明らかに嘘をついている
- 結局この関数は、また反転して戻している
- じゃぁそもそも反転していた理由は何???
論理値(真偽値)がめちゃくちゃである。
さらに、この見つけたコードをコミットした人間に話を聞くと、元のコード見た?
どうやら理由があって別の処理から流用したコードらしい。
しかし、指摘内容自体は把握していた様で、でもそのまま流用したとか。
なお、流用したほうもなかなかのキャリアの持ち主で、
単純処理すら直さないで放置したことにもヤバイと思った。論理値は非常に混乱しやすいので、扱いには本当に注意が必要。
私は、ポジティブな方を真、ネガティブな方を偽になる様に心がけている。以上
クソコードを書かない様に日々精進したいものです。
- 投稿日:2020-06-19T21:52:02+09:00
かつて見たびっくりクソ コード
概要
@rana_kualu さんの記事に触発されて、
自分が今まで見かけたなかでもヤバめのクソ コードについて書いてみる。(元記事)
・これまで見た中で最も汚いソースコード - Qiita
https://qiita.com/rana_kualu/items/2f3c40642836c11f5ddcクソ コード
① typedef
再現コード.ctypedef void coid; typedef void boid;キーボードを見ると [c] [v] [b] が並んでいる。
即ちこれは、 タイプミスを型名の再定義でカバー しているというもの。
流石にコレは プログラムではない、と思った。② マイナス1万
変数名はとりあえず適当。
再現コード.php$date0 = '20201122'; //画面からYYYYMMDDで文字列が来る $date1 = $date0 -10000; $year = substr($date1, 0, 4); $month = substr($date1, 4, 2); $day = substr($date1, 6, 2);なんだこの1万を引いている処理は・・・。
(当時の)同僚が保守中の仕組みからこのコード見つけ、一緒に悩んだ。
日付系処理では1万はキリが悪い。。。
幸いにも書いた輩が隣に居たので直接聞いてみた。1年前を計算している
なるほど!
書き直せ!
幸いにも書いた輩が高校から友人(同級生)だったので、とりあえず殴った。
日付操作は日付操作用の関数がちゃんとあるので、それを使いましょう。
(と言うか、私は静的型畑の人間なので、動的型変換の使い方にも膝が震えた。)③ たこいかぱにっく
再現コード.javaboolean checkNumber (str) { boolean isNumber = !NumberUtils.isNumber(str); if(isNumber) { //エラーメッセージ処理処理 } return !isNumber; }ツッコミどころ
- 変数名が明らかに嘘をついている
- 結局この関数は、また反転して戻している
- じゃぁそもそも反転していた理由は何???
論理値(真偽値)がめちゃくちゃである。
さらに、この見つけたコードをコミットした人間に話を聞くと、元のコード見た?
どうやら理由があって別の処理から流用したコードらしい。
しかし、指摘内容自体は把握していた様で、でもそのまま流用したとか。
なお、流用したほうもなかなかのキャリアの持ち主で、
単純処理すら直さないで放置したことにもヤバイと思った。論理値は非常に混乱しやすいので、扱いには本当に注意が必要。
私は、ポジティブな方を真、ネガティブな方を偽になる様に心がけている。以上
クソコードを書かない様に日々精進したいものです。
- 投稿日:2020-06-19T18:19:10+09:00
Mockitoで引数オブジェクトの内容の検証をする
Mockitoを使ってるときに、『メソッドが呼ばれたかどうか』 は verifyのtimes() を使って検証する、っていう話はよく出てくるんですが、メソッドに渡った引数(オブジェクトの中身)の検証できる方法はないのか?と思って調べてみました。
参考
https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/ArgumentMatchers.html
https://www.codeflow.site/ja/article/mockito-argument-matchersMatcherの作り方
org.mockito.ArgumentMatcher を継承して、カスタムMatcherを作ります。
HashMapだったらこんな感じかな。HashMapMatcher.javaimport java.util.HashMap; import org.mockito.ArgumentMatcher; public class HashMapMatcher implements ArgumentMatcher<HashMap<String, String>> { HashMap<String, String> map; public HashMapMatcher(HashMap<String, String> map) { this.map = map; } @Override public boolean matches(HashMap<String, String> actual) { if (this.map.keySet().size() != actual.keySet().size()) { return false; } for (String key : this.map.keySet()) { if (!actual.containsKey(key)) { return false; } if (!this.map.get(key).equals(actual.get(key))) { return false; } } return true; } // Overrideして、mapの中身を全部出すようにしておけば、テストが失敗したときに楽。 @Override public String toString() { // どう出力するかはお好みで。 StringBuffer sb = new StringBuffer(); for (String key : this.map.keySet()) { sb.append("[key:").append(key); sb.append(", value:").append(map.get(key)).append("]"); } return sb.toString(); } }使い方
org.mockito.ArgumentMatchers.argThat にカスタムMatcherを渡して使います。
HogeTest.java// hoge.save(map); が呼ばれて、その引数が期待値と同じか検証する verify(hoge,atLeastOnce()).save(argThat(new HashMapMatcher(map)));終わりに
verifyじゃなくて、when ~ thenReturn のときの検証にも使えるっぽいです。
それではレッツエンジョイ テストライフ。
- 投稿日:2020-06-19T12:36:11+09:00
初心者Java 「基本的な用語」
用語があやふやになるのでまとめてみました
メソッド
オブジェクト指向による「操作」を定義したもの
public static void main (String[] args){ メソッドmainメソッドが無い場合
プログラムの中で記述したクラス名とプログラムのファイル名が異なっていた場合、最終的にプログラムを実行した時に指定する実行ファイル名が表すクラスがプログラムの中に無いのでエラーとなります。変数
データを格納しておく領域
int number //int型 数字 String str //String型 文字列 int[] list //int型の配列 listクラス
class Main クラス引数
プログラムや関数に渡す値
引数(ひきすう)とは、メソッドに渡すデータのことで、メソッドの後ろの括弧「( )」にあるものです。
println(プリントライン)メソッドで言うと、以下の部分の「こんにちは」が引数になります。
java
println("こんにちは");
引数を必要としないメソッドもありますので、その場合は括弧「( )」の中には何も書きません。
メソッド() 例 add(50,500) 引数戻り値とは
メソッドに引数を渡し、その結果戻ってきたデータのことを戻り値といいます。
メソッドによっては戻り値がないものもあります。配列
値を格納しておける箱が変数でしたが、変数の場合は1つの値しか格納できません。複数の値をまとめて扱うことができる機能が配列です。以下の例では、int型の10個のデータから構成される配列を宣言し、値を代入しています。
int[] primeNumber = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29};static
静的、変わらない
クラスのインスタンスを作成せずに呼び出しOKコンストラクタ
クラスをnewした瞬間に実行される関数のこと
- クラス名の同じにする必要り
- 戻り値は返せない
public class Main{ //コンストラクタ public Main(){ } }Sample class instanceA = new Sampleclass(); コンストラクタの呼び出しインスタンス
建設業界でいうと建物。オブジェクトを作成するための自分専用の領域を確保する
クラス名 インスタンス変数 = new クラス名(); インスタンス変数名.フィールド変数 インスタンス変数名.メソッド名()初期化→インスタンス化して使う。
- new演算子 インスタンスを作るときに使う
メンバ変数
public class Main{ String name; int age; }Mainオブジェクトはnameとageというパラメータを持っています。
オブジェクトが持つパラメータのことを、このクラスのメンバ変数と言います。Mainクラスはnameとageという2つのメンバ変数を持っている
アクセス修飾子
public、protected、private は アクセス修飾子 と呼ばれ、指定した変数やクラスなどを、どの範囲から参照可能かのスコープを制御するのに用いられます。
public どこからでもアクセス可能 protected 同一パッケージ内のクラス、継承したクラスからのみ可能 デフォルト 同一パッケージ内のクラスからのみ可能 private そのクラスからのみ可能publicのスコープが一番広く、どのクラスからも参照可能です。
これに対し、privateのスコープが最も狭く、同一のクラスからしか参照できません。- private
不用意に外部からのアクセスを許さず、かつ外部からは決められたメソッドからのみアクセスさせたい場合、アクセス修飾子はprivateを使います。
- public
publicというのは、事実上制限がかかっていない状態。
6-3.例外処理
Javaのエラーは、コンパイルエラーと実行時エラーの2通りがあります。実行時エラーが発生したときに特定の処理を実行させるために、以下のようにプログラムに例外処理を記述しておきます。
try{ 例外が発生する可能性のある処理; } catch (例外クラス 変数名){ 例外が発生したときに実行する処理; } finally { 例外の発生にかかわらず実行する処理; }なお、throw文を用いると意図的に例外を発生させ、エラーメッセージを返すことができます。