SlideShare a Scribd company logo
1 of 16
ネットワークプログラミング 応用演習 第4回 ネットワーク 2011/10/12
コンストラクタとメソッド P.8 16行目 オブジェクト指向言語の用語 ・クラス ≒ 設計図 ・インスタンス ≒ 実体(newで生成) PrintWriter writer = 		new PrintWriter( ...以下略... 設計図 PrintWriter ←newにより  生成される
コンストラクタとメソッド オブジェクト指向言語の用語 ・クラス ≒ 設計図 ・インスタンス ≒ 実体(newで生成) PrintWriter writer = new PrintWriter( ...以下略... writer 設計図 PrintWriter
実際の動作の調べ方 http://java.sun.com/j2se/1.4/ja/docs/ja/api/ または http://java.sun.com/javase/ja/6/docs/ja/api/ にアクセスし 赤い枠から クラスを選択して
実際の動作の調べ方 該当する項目を探す
Java API仕様の見方 たくさんの項目があるが,先頭から (1)クラスの継承図 (2)説明 (3)フィールドの概要 (4)コンストラクタの概要 (5)メソッドの概要 (6)フィールドの詳細 (7)コンストラクタの詳細 (8)メソッドの詳細 の順番で並んでいる
クラスの継承図 java.io.PrintWriter  と書いてあるので,先頭に import java.io.*    が必要. または,プログラムの中にいちいち java.io.PrintWriter  と書く.
コンストラクタ 簡単に言うと,newの処理 PrintWriter writer = new PrintWriter( socket.getOutputStream() ); 例えば,↑が実行されるときの処理. コンストラクタは4種類あるけどどれ? PrintWriter( OutputStream out ) PrintWriter( OutputStream out, booleanautoFlash ) PrintWriter( Writer out ) PrintWriter( Writer out, booleanautoFlash )
オーバーロード Java言語では,同じ名前のメソッドを定義可能. 実際に使われるメソッドは,パラメータによって 自動的に判別される.  下記のメソッドが用意されているとき,   dummy(1);  で実行されるのはどっち? void dummy( int a ) { System.out.println( "パラメータがint型一つ" ); } void dummy( ) { System.out.println( "パラメータ無し" ); }
実行されるコンストラクタをさがそう PrintWriter writer = new PrintWriter( socket.getOutputStream() ); socket.getOutputStram() って何だ? まず,変数宣言を確認する. Socket socket = new Socket(); socketには「new Socket()」が代入されているので,SocketクラスのgetOutputStreamを調べる.
メソッドの探し方 先に示したURLから,Socketクラスを開き, メソッドの詳細からgetOutputStreamを探す. パラメータは無し. 戻り値の型 public OutputStreamgetOutputStream() throws IOException 発生する可能性のある例外 と言う具合に,OutputStream型を返す メソッドであることが分かる.
該当するコンストラクタ PrintWriter writer = new PrintWriter( socket.getOutputStream() ); よって,該当するコンストラクタは PrintWriter( OutputStream out ) PrintWriter( OutputStream out, booleanautoFlash ) PrintWriter( Writer out ) PrintWriter( Writer out, booleanautoFlash ) であることが分かる. 詳しい説明も読んでおこう.
便利なコンストラクタを探す PrintWriter( OutputStream out ) PrintWriter( OutputStream out, booleanautoFlash ) PrintWriter( Writer out ) PrintWriter( Writer out, booleanautoFlash ) ん?このコンストラクタって何だ? Java言語では,同じ働きをするコンストラクタやメソッドが多数定義されている.仕様書によるとautoFlushにtrueを与えると,便利そうである. よって,以下のように書き換えることもできる. PrintWriter writer = new PrintWriter( socket.getOutputStream(), true );
課題4-e プログラムから実行される ・全てのコンストラクタ ・全てのメソッド に関してJava API仕様書で確認し, 発生する可能性のある例外を調べる. ついでに,コンストラクタやメソッドの 説明にも目を通しておくこと.
課題4-f 以下のように,実行時に接続先の ホスト名とポート番号を指定できるようにする $ java Test41 localhost8000 プログラムの6行目が以下のようになる InetSocketAddresssocketAddress =  new InetSocketAddress( args[0],    Integer.parseInt( args[1] ) );
課題4-f このように改造すると, コマンドラインパラメータに何も指定しないと 例外が発生する. しかし,実行方法を知らない人から見ると, 「実行したらエラーが出た」としか映らない. そこで,コマンドラインパラメータが無い 場合には, ・プログラムの目的 ・プログラムの使い方 ・実行例 を表示することが望ましい.

More Related Content

Viewers also liked

人間仙境
人間仙境人間仙境
人間仙境airliu
 
Привлечение участников на мероприятие через Social Media
Привлечение участников на мероприятие через Social MediaПривлечение участников на мероприятие через Social Media
Привлечение участников на мероприятие через Social MediaPetr Mityushkin
 
Personal Branding y Reputación Digital
Personal Branding y Reputación DigitalPersonal Branding y Reputación Digital
Personal Branding y Reputación DigitalPamely Hernandez
 
юридическая психология
юридическая психологияюридическая психология
юридическая психологияKnyazVa
 
Muuramen kirkon hankesuunnitelmä
Muuramen kirkon hankesuunnitelmäMuuramen kirkon hankesuunnitelmä
Muuramen kirkon hankesuunnitelmäSimo Lampela
 
Ponghino videocomunicazione istituzionale
Ponghino videocomunicazione istituzionalePonghino videocomunicazione istituzionale
Ponghino videocomunicazione istituzionaleDavide Fonda
 
Eindhovenas. Ką tik
Eindhovenas. Ką tikEindhovenas. Ką tik
Eindhovenas. Ką tiktmsrmnsks
 
MRTN Graphic Design & Illustrations
MRTN Graphic Design & Illustrations MRTN Graphic Design & Illustrations
MRTN Graphic Design & Illustrations Maarten Stienstra
 
Яков Уринсон. Перспективы развития экономики: Россия и мир
Яков Уринсон. Перспективы развития экономики: Россия и мирЯков Уринсон. Перспективы развития экономики: Россия и мир
Яков Уринсон. Перспективы развития экономики: Россия и мирgaidar_fund
 

Viewers also liked (18)

Powerpoint Bondelandet
Powerpoint BondelandetPowerpoint Bondelandet
Powerpoint Bondelandet
 
Conceptos upv 2010
Conceptos upv 2010Conceptos upv 2010
Conceptos upv 2010
 
NVO labā prakse - Ilizanna
NVO labā prakse - IlizannaNVO labā prakse - Ilizanna
NVO labā prakse - Ilizanna
 
人間仙境
人間仙境人間仙境
人間仙境
 
Привлечение участников на мероприятие через Social Media
Привлечение участников на мероприятие через Social MediaПривлечение участников на мероприятие через Social Media
Привлечение участников на мероприятие через Social Media
 
.
..
.
 
NVO Labā prakse - Rudbekijas
NVO Labā prakse - RudbekijasNVO Labā prakse - Rudbekijas
NVO Labā prakse - Rudbekijas
 
Personal Branding y Reputación Digital
Personal Branding y Reputación DigitalPersonal Branding y Reputación Digital
Personal Branding y Reputación Digital
 
Sveikatos priežiūros įstaigų analizės išvados
Sveikatos priežiūros įstaigų analizės išvadosSveikatos priežiūros įstaigų analizės išvados
Sveikatos priežiūros įstaigų analizės išvados
 
Pm2 3b
Pm2 3bPm2 3b
Pm2 3b
 
юридическая психология
юридическая психологияюридическая психология
юридическая психология
 
Lista de productos2
Lista de productos2Lista de productos2
Lista de productos2
 
Muuramen kirkon hankesuunnitelmä
Muuramen kirkon hankesuunnitelmäMuuramen kirkon hankesuunnitelmä
Muuramen kirkon hankesuunnitelmä
 
Sveikatos priežiūros įstaigų analizės išvados (2)
Sveikatos priežiūros įstaigų analizės išvados (2)Sveikatos priežiūros įstaigų analizės išvados (2)
Sveikatos priežiūros įstaigų analizės išvados (2)
 
Ponghino videocomunicazione istituzionale
Ponghino videocomunicazione istituzionalePonghino videocomunicazione istituzionale
Ponghino videocomunicazione istituzionale
 
Eindhovenas. Ką tik
Eindhovenas. Ką tikEindhovenas. Ką tik
Eindhovenas. Ką tik
 
MRTN Graphic Design & Illustrations
MRTN Graphic Design & Illustrations MRTN Graphic Design & Illustrations
MRTN Graphic Design & Illustrations
 
Яков Уринсон. Перспективы развития экономики: Россия и мир
Яков Уринсон. Перспективы развития экономики: Россия и мирЯков Уринсон. Перспективы развития экономики: Россия и мир
Яков Уринсон. Перспективы развития экономики: Россия и мир
 

Similar to Enshu4

Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Takahiro Miyaura
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTterurou
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane findingTakahiro Miyaura
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~Takahiro Miyaura
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Yasutomo Kawanishi
 
Mixed Reality Toolkit V3について
Mixed Reality Toolkit V3についてMixed Reality Toolkit V3について
Mixed Reality Toolkit V3についてTakahiro Miyaura
 
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...Takahiro Miyaura
 
レゴ×Kinect実験指導書
レゴ×Kinect実験指導書レゴ×Kinect実験指導書
レゴ×Kinect実験指導書Satoshi Fujimoto
 
Active Directoryデータの "大きい整数"
Active Directoryデータの "大きい整数"Active Directoryデータの "大きい整数"
Active Directoryデータの "大きい整数"Michio Koyama
 
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングScalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングJun Saito
 
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーションMasashi Umezawa
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Yoshifumi Kawai
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングTanUkkii
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
Media queriesをjava scriptで操作
Media queriesをjava scriptで操作Media queriesをjava scriptで操作
Media queriesをjava scriptで操作Takayoshi Aridome
 
はじめての人のためのDeep Learning
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep LearningTadaichiro Nakano
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発信之 岩永
 

Similar to Enshu4 (20)

Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
 
今改めて見る Plane finding
今改めて見る Plane finding今改めて見る Plane finding
今改めて見る Plane finding
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
Oculus Quest 2 on Mixed Reality Toolkit V2.5.0~ ハンドトラッキングする方法 ~
 
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ (Rev.2) ~ Any browser. Any host. Any OS. Open Source. ~
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
 
Mixed Reality Toolkit V3について
Mixed Reality Toolkit V3についてMixed Reality Toolkit V3について
Mixed Reality Toolkit V3について
 
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
OpenXR + XR Interaction Toolkit使ったHoloLensコンテンツ開発検証 ~ (私が)完全に理解できたらちゃんと作れて、いろ...
 
レゴ×Kinect実験指導書
レゴ×Kinect実験指導書レゴ×Kinect実験指導書
レゴ×Kinect実験指導書
 
Active Directoryデータの "大きい整数"
Active Directoryデータの "大きい整数"Active Directoryデータの "大きい整数"
Active Directoryデータの "大きい整数"
 
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミングScalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
 
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
第142回Smalltalk勉強会 - PharoJSで作るWebアプリケーション
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
 
Media queriesをjava scriptで操作
Media queriesをjava scriptで操作Media queriesをjava scriptで操作
Media queriesをjava scriptで操作
 
はじめての人のためのDeep Learning
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep Learning
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
Windows 8時代のアプリ開発
Windows 8時代のアプリ開発Windows 8時代のアプリ開発
Windows 8時代のアプリ開発
 

More from sudahiroshi (8)

Enshu2012 1
Enshu2012 1Enshu2012 1
Enshu2012 1
 
20120121 et研
20120121 et研20120121 et研
20120121 et研
 
Enshu8
Enshu8Enshu8
Enshu8
 
Enshu7
Enshu7Enshu7
Enshu7
 
Enshu5
Enshu5Enshu5
Enshu5
 
Enshu3
Enshu3Enshu3
Enshu3
 
Enshu2
Enshu2Enshu2
Enshu2
 
Enshu1
Enshu1Enshu1
Enshu1
 

Enshu4