約 1,825,319 件
https://w.atwiki.jp/ab3104/pages/15.html
java - * java に関する メモ書きです。。。 * java に関する メモ書きです。。。 o java基本 o Web Frame works o O/R マッピング o DI o アプリケーションサーバ java に関する メモ書きです。。。 注意: 嘘ばかり書いてある可能性があります。 java基本 Web Frame works * wicket * JSF? o VisualWebPack NetBeans5.5-VisualWebpack? または Creator2Update1 に関するメモ O/R マッピング * S2DAO * Hibernate DI * Seaser? * SPRING アプリケーションサーバ * jetty6.1 * tomcat
https://w.atwiki.jp/sfrontier/pages/30.html
Knowledge and Technique 作成日 2007/11/01 H.Naito 更新日 2007/11/27 T.Kodama 注意 このページは基本的に、Java 5.0 での情報を載せています。 Java 5.0 以外のバージョンの情報を掲載する場合には、バージョン情報を付けた上で記述します。 General 文法 フレームワーク Information その他 メモ General Java ってなあに? Wikipedia IT用語辞典 e-Words はてなダイアリー 文法 予約語 識別子 データ型 演算子 フレームワーク Information WebPage Books Effective Java SampleCode その他 javacコマンド メモ 配列 宣言の際、変数に [] を付けないで、型に付ける方が Java っぽい ant の話 Javac でソースディレクトリを指定しているのに、 sourcepath="" を入れるのは、コンパイルの際、include を消しても勝手に javac が階層配下を見に行って成功させてしまい、実際に動かそうとしたらクラスが無いとなっていしまうのを防ぐ為。 ソースファイル内での定義の順番 [ Option ] パッケージ宣言 [ Option ] インポート宣言 [ 必須 ] クラス、インタフェース、列挙型の定義 パブリッククラスとクラス名 ソースファイル内に1つでも public クラスがある場合には、そのソースファイル名は必ずパブリッククラスと同じ名前を付けなければいけません。 したがって、パブリッククラスは1つのソースファイル内に1つしか定義できません。 同様に、public 指定されたインタフェースや列挙型がある場合は、ソースファイル名は、必ず public 指定されたインタフェースや列挙型と同じでなければ、なりません。
https://w.atwiki.jp/memcache/pages/23.html
ITPro Java技術最前線 SwingUnit VisualVM Snmp4J RMI ITPro Java技術最前線 URL http //itpro.nikkeibp.co.jp/article/COLUMN/20060915/248243/?ST=develop SwingUnit URL https //swingunit.dev.java.net/ VisualVM URL https //visualvm.dev.java.net/ Snmp4J URL http //www.snmp4j.org/ RMI RMI によるカスタムソケットファクトリの使用 http //java.sun.com/javase/ja/6/docs/ja/technotes/guides/rmi/socketfactory/index.html その他 http //www.ne.jp/asahi/hishidama/home/tech/java/j2ee/rmi.html http //d.hatena.ne.jp/nowokay/20060817#1155840591 http //d.hatena.ne.jp/muimy/20060831/1156996173 http //d.hatena.ne.jp/Kazzz/20080122/p1 http //www.edita.jp/trash/one/trash7431892.html http //www.02.246.ne.jp/~torutk/javahow2/rmi_nostub.html#doc1_id43 http //74.125.153.132/search?q=cache c1f2YwqqYSEJ www.hanatoyume.net/article.php/20090430190202197+RMI+java+6+stub cd=6 hl=ja ct=clnk gl=jp lr=lang_ja client=firefox-a http //www.google.co.jp/search?hl=ja client=firefox-a rls=org.mozilla%3Aja%3Aofficial hs=QgW q=RMI++stub+%E4%B8%8D%E8%A6%81 btnG=%E6%A4%9C%E7%B4%A2 lr=lang_ja aq=f oq=
https://w.atwiki.jp/programhack/pages/16.html
Java関連 修飾子のスコープ スコープがたまに曖昧になるので、メモ とほほのJava入門 修飾子 http //www.tohoho-web.com/java/modifier.htm Javaコーディング規約というか書き方? よさげな記事だったので、メモ。 http //thinkit.co.jp/free/tech/15/2/1.html
https://w.atwiki.jp/volvicn55/pages/7.html
Java Java JavaJava
https://w.atwiki.jp/mixmusic/pages/29.html
JAVA ■java オブジェクト指向 セキュリティ構成やネットワーク関連の機能が標準搭載 javaソフトウェアはプラットフォームに依存しない ■platform アプリケーションソフトを動作させる際の基盤となるOSの種類や環境、設定のこと ■struts jakartaプロジェクトが開発したWEBアプリケーションフレームワーク ■tomcat JAVAサーブレット・JSPを処理するアプリケーションサーバ ApacheやIISのプラグインとして動作できる ■jakartaプロジェクト オープンソースのWEBサーバソフトなどを開発しているApacheプロジェクトのサブプロジェクト ■Apache WEBサーバ □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 開発環境構築手順 プラットフォーム(SW) OS : Microsoft XP Professional SP2 DB : Oracle 10g(10.2.0) SWIDE : Eclipse() ■SWIDE構築 ■JRE(1.4)インストール ■Eclipse()インストール ■Eclipse()の日本語化 ■J2SE SDK(コンパイラ・Java標準API・Javadocマニュアル) ※J2SE SDKマニュアル(日本語版) ■DB構築 ┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏用語解説┓┓┓┓┓┓┓┓┓┓┓┓┓┓┓┓┓┓┓┓ プラットフォーム(Platform) ・・・アプリケーションソフトを動作させる際の基盤となるOSの種類や環境、設定等 OS(Operating System) ・・・コンピュータシステム全体を管理するソフトウェア DB(Database) ・・・共有されるデータの集合 Oracle ・・・リレーショナルデータベース管理システム SWIDE(Software Integrated Development Environment) ・・・ソフトウェア総合開発環境 JRE(Java Runtime Environment) ・・・Java言語で開発されたソフトウェアを実行するために必要なソフトウェアのセット SDK(Software Development Kit) ・・・プログラミング言語やAPI等のテクノロジーを利用してソフトウェアを開発する際に必要なツールのセット □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
https://w.atwiki.jp/naobe/pages/25.html
言語に戻る EJB JavaEE5 MBean JMX JNDI サーブレット 言語仕様 項目 説明 transient 修飾子。Seriariseオブジェクトの保管しないフィールドを修飾する。 クラスローダ http //www.techscore.com/tech/Java/JavaEE/Servlet/supplement-1/ 参照 目的 同じ名前でバージョンの異なるクラスを使用するために使う。クラスローダが異なればバージョンが異なっても良い。自分自身のクラスローダを得るにはgetClassLoader()メソッドを用いる。 クラスローダには親子関係があり、子クラスローダがクラスをロードするときには、親クラスローダにロードを依頼してロードできなければ、子クラスローダがロードする。 Class#getClassLoader()は、このクラスをロードしたクラスローダを返す クラスローダによってロードされたClassはパーマネント領域に格納される。ClassLoaderがGCされるとGCから解放される。 VMのクラスローダ ブートストラップクラスローダ JAVA_HOME /lib下のJARファイルに含まれるクラスをロードする。JDK6は、 JAVA_HOME /jre/lib下? 親はいない 拡張クラスローダ JAVA_HOME /lib/ext下のJARファイルに含まれるクラスをロードする。JDK6は、 JAVA_HOME /jre/lib/ext下?親はいない システムクラスローダ CLASSPATHで指定した位置からクラスをロードする。親は拡張クラスローダ。ブートストラップクラスローダは親子関係なしでも委譲されるということでは? 通常のnew Foo()ではこのクラスローダが使われる。 ブートストラップクラスローダ、拡張クラスローダ、システムクラスローダの順番でクラスをロードする。 コンテキストクラスローダ(JDK6 API Threadより) コンテキスト ClassLoader は、クラスおよびリソースをロードするときに、このスレッドで実行中のコードが使用するためにスレッドの作成側によって提供されます。コンテキスト ClassLoader が設定されていない場合、デフォルトでは親 Thread の ClassLoader コンテキストになります。通常、親スレッドのコンテキスト ClassLoader は、アプリケーションのロードに使用されるクラスローダーに設定されます。 なので、設定しなければシステムクラスローダがコンテキストクラスローダになる。 コンテキスト・クラスローダを設定・取得するには、java.lang.Thread#setContextClassLoader,getContextClassLoaderメソッドを使う。 クラスローダ作成 JDK6 APIより たとえば、アプリケーションはネットワーククラスローダーを作成して、サーバーからクラスファイルをダウンロードできます。コードは次のようになります。 ClassLoader loader = new NetworkClassLoader(host, port); Object main = loader.loadClass("Main", true).newInstance(); . . . ネットワーククラスローダーのサブクラスは、ネットワークからクラスをロードするために findClass メソッドと loadClassData メソッドを定義しなければなりません。クラスを作成するバイトを一度ダウンロードしたら、defineClass メソッドを使ってクラスインスタンスを生成する必要があります。実装の例を次に示します。 class NetworkClassLoader extends ClassLoader { String host; int port; public Class findClass(String name) { byte[] b = loadClassData(name); return defineClass(name, b, 0, b.length); } private byte[] loadClassData(String name) { // load the class data from the connection . . . } } 特定のディレクトリからクラスをロードするクラスローダを作成してみる。 MyClassLoaderのmainメソッドで、test.MyClassLoaderTargetをロードしClassを作成する MyClassLoaderはClassLoaderを継承したクラスで、loadClassメソッドをオーバライドし、c /mydoc/tmp/を優先的にロードするディレクトリとしている。c /mydoc/tmp/にクラスがない場合は、ClassLoaderのloadClassメソッドを実行する ClassLoaderのloadClassメソッドでは、キャッシュにあれば、そのクラスを返す。なければ親クラスローダに移譲する。なければシステムクラスローダを使ってクラスをロードする Class#newInstance()を実行して、インスタンスを生成する MyClassLoaderTarget#execute()を実行し、MyClassLoaderTarget2をnewしてexecute()を実行する 実行結果を見ると、MyClassLoaderTarget2のクラスローダは、MyClassLoaderであることがわかる。つまりクラスローダを使ってロードしたクラスから別のクラスをnewするときはそのクラスローダを使うことがわかる。クラスローダを作成すると親クラスローダはシステムクラスローダになる。 コンテキストクラスローダは明示的に使用しない限り、使われることはなさそう。 package test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class MyClassLoader extends ClassLoader { private static final int BUFSIZE = 1024; private byte[] result; private int last = 0; @Override public Class ? loadClass(String name) throws ClassNotFoundException { Class ? c = null; try { c = findClass(name); } catch (ClassNotFoundException e) { c = super.loadClass(name); } return c; } private void dbg(String string) { System.out.println(string); } @Override protected Class ? findClass(String name) throws ClassNotFoundException { try { byte[] b = loadClassData(name); return defineClass(name, b, 0, b.length); } catch (Exception e) { throw new ClassNotFoundException(e.getMessage(), e); } } private byte[] loadClassData(String name) throws IOException { result = new byte[0]; last = 0; FileInputStream ins = null; try { byte[] buf = new byte[BUFSIZE]; int readSize = 0; name = name.replace( . , / ); File classFile = new File("c /mydoc/tmp/" + name + ".class"); ins = new FileInputStream(classFile); while((readSize = ins.read(buf)) != -1 ) { moveToResult(readSize, buf); } return result; } finally { if(ins != null) { ins.close(); } } } private void moveToResult(int readSize, byte[] buf) { byte[] tmp = new byte[last + readSize]; // 結果バイト配列をtmp配列の先頭にコピー System.arraycopy(result, 0, tmp, 0, result.length); // bufをtmp配列にコピー System.arraycopy(buf, 0, tmp, last, readSize); result = tmp; last += readSize; } public static void main(String[] args) { try { MyClassLoader loader = new MyClassLoader(); System.out.println("parent " + loader.getParent().getClass().getName()); Class ? clazz = loader.loadClass("test.MyClassLoaderTarget"); System.out.println("target class loader name " + clazz.getClassLoader().getClass().getName()); ((Executor)clazz.newInstance()).execute(); } catch (Exception e) { e.printStackTrace(); } } } package test; public class MyClassLoaderTarget implements Executor { @Override public void execute() { System.out.println("AAA"); MyClassLoaderTarget2 target2 = new MyClassLoaderTarget2(); target2.execute(); System.out.println("target2 class loader name " + target2.getClass().getClassLoader().getClass().getName()); } public static void main(String[] args) { MyClassLoaderTarget target = new MyClassLoaderTarget(); target.execute(); } } package test; public class MyClassLoaderTarget2 implements Executor { @Override public void execute() { System.out.println("BBB"); } public static void main(String[] args) { MyClassLoaderTarget2 target = new MyClassLoaderTarget2(); target.execute(); } } package test; public interface Executor { public void execute(); } 実行結果 parent sun.misc.Launcher$AppClassLoader target class loader name test.MyClassLoader AAA BBB target2 class loader name test.MyClassLoader ThreadLocal スレッドに固有のオブジェクトを保管するために使う(Thread Singleton)。Servletの中で、使用例としてDBに対するConnectionをスレッド毎に保管する場合があげられる。この場合、引数にConnectionを作成すると全てのメソッドにConnectionの引数が必要になり手間がかかる。スレッドにプライベートフィールドを作成して保管できないときに使える。 JDBC 参照 タイプ 説明 備考 type2 ベンダのライブラリと共同して、DBと通信。ベンダのクライアントアプリが必要。 type4 直接DBと通信。JDBCドライバサイズが大きい バッチ insert, updateが連続して行われるときにネットワークトラフィックを削減するために使う。PreparedStatementオブジェクトに対して、addBatch(), executeBatch()メソッドを使うと複数のステートメントをまとめてDBサーバ送信する。 言語コード コード名 説明 Windows-31J ShiftJISの拡張。NEC特殊コードもサポート。 スレッドダンプ 稼働中のスレッドを標準出力にダンプする。 kill -3 プロセス番号 出力例 daemon以外のスレッドを見る。以下の例ではSNMP APIで停止している。 Full thread dump Java HotSpot(TM) Server VM (11.2-b01 mixed mode) "RMI Scheduler(0)" daemon prio=10 tid=0x0955e000 nid=0x15db waiting on condition [0x30cd1000..0x30cd1fa0] java.lang.Thread.State TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for 0x37f243d8 (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java 198) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java 1963) at java.util.concurrent.DelayQueue.take(DelayQueue.java 164) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java 583) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java 576) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java 947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java 907) at java.lang.Thread.run(Thread.java 619) "Thread-7" prio=10 tid=0x0954bc00 nid=0x15bf in Object.wait() [0x30eb7000..0x30eb7ea0] java.lang.Thread.State TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0xa89ec300 (a com.adventnet.snmp.snmp2.SnmpCallback) at com.adventnet.snmp.snmp2.SnmpCallback.sleepUntilNotified(SnmpCallback.java 166) - locked 0xa89ec300 (a com.adventnet.snmp.snmp2.SnmpCallback) at com.adventnet.snmp.snmp2.SnmpCallback.run(SnmpCallback.java 152) アノテーション 注釈。プログラムに影響を与えない。プログラムから読める。コンパイラの動作に影響を与える。 @Override Overrideアノテーションを付加したメソッドがオーバライドメソッドでなければコンパイルエラーになる。 @SuppressWarning Xlintを指定したときに発生する警告メッセージを抑制する。 アプレット jarファイルを指定するには、ARCHIVEタグを使う。CLASSPATHはきかない。 セキュリティポリシー java.policyファイルの構文 grant signedBy "signer_names", codeBase "URL", principal principal_class_name "principal_name", principal principal_class_name "principal_name", ... { permission permission_class_name "target_name", "action",signedBy "signer_names"; permission permission_class_name "target_name", "action",signedBy "signer_names"; ... }; ここで、"signer_names"、"URL"、principal_class_name、"principal_name"、permission_class_name、"target_name"、"action"、"signer_names"は、変数。 signedBy 、codeBase、、principal は省略可能。 意味は、signer_namesで署名されたURLにあるプログラムが、permission_class_nameで規定されるtarget_nameに対して、actionすることを許可する。target_name, actionについては、permission_class_nameのAPIを参照。 http //java.sun.com/j2se/1.5.0/ja/docs/ja/guide/security/PolicyFiles.html 参照。 例 permission java.io.FilePermission "\\\\192.168.1.40\\-", "read,write"; 192.168.1.40のリモートファイルに対する読み書きを許可する。 Linux firefoxへのJava Plugin インストール 例 # ln -s /usr/java/jdk1.6.0_20/jre/lib/i386/libnpjp2.so /opt/firefox/plugins インストールの確認 urlにabout pluginsを設定して開く Linuxでのplugin コントロールパネル 起動 $JAVA_HOME/bin/ControlPanel を実行 最大メモリ容量の修正 "-XX MaxPermSize=256m"をJavaタブのアプレットパラメータに追加 その他 スタックトレースをStringに変換する 仕事の都合で、最後の行で改行を削除してタブをスペースに変換している。 private String getStackTraceAsString(Exception e) { ByteArrayOutputStream ostream = new ByteArrayOutputStream(100); e.printStackTrace(new PrintStream(ostream)); String sep = System.getProperty("line.separator"); return ostream.toString().replaceAll(sep, "").replace("\t", " "); } 固定長レコードのファイルを出力 package test; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; public class SingleFille { private BufferedOutputStream bstream; /** * ファイルに書き込むデータ * 桁数 * 内容 */ private String[][] data = { {"aaa1", "bbb1", "ccc1"}, {"漢字2", "bbb2", "ccc2"}, {"aaa3", "漢字3", "ccc3"}, {"aaa4", "bbb4", "漢字4"}, }; /** 列の桁数 */ private int[] length = {10, 20, 30}; /** ファイルオフセット */ private int offset = 0; private static final String FILE_PATH = "singleFile.dat"; public static void main(String[] args) { SingleFille sfile = new SingleFille(); try { sfile.execute(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void execute() throws IOException { File file = new File(FILE_PATH); try { FileOutputStream stream = new FileOutputStream(file); bstream = new BufferedOutputStream(stream); for(int i = 0; i data.length; i++) { String[] line = data[i]; putFile(line); } } catch (IOException e) { throw e; } finally { if(bstream != null) { try { bstream.close(); } catch (IOException e) { throw e; } } } } /** * @param line * @throws IOException */ private void putFile(String[] line) throws IOException { for(int i = 0; i line.length; i++) { //各列を桁数になるように整形 byte[] term = createTerm(line[i], i); bstream.write(term); offset += term.length; } } /** * @param term * @param index * @return * @throws UnsupportedEncodingException */ private byte[] createTerm(String term, int index) throws UnsupportedEncodingException { //項目を格納するバイト byte[] outterm = new byte[length[index]]; //項目をShift_JISのバイトに変換 byte[] interm = term.getBytes("SJIS"); for(int i = 0; i outterm.length; i++) { if( i interm.length) { outterm[i] = interm[i]; } else { //残りはスペース outterm[i] = 0x20; } } return outterm; } }
https://w.atwiki.jp/dotcom/pages/94.html
日付を処理したい時はCalendar型ですよオクサマ。 Calenderじゃなくてよ。 宣言しよう今日の日付を取ってくるには? 月は0から始まる。 任意の日付をセット 曜日がほしい時(数字) 曜日がほしい時(日本語) 日付を計算しよう 宣言しよう calって名前の変数にしてみます。 private Calendar cal; これが必要よ。 import java.util.Calendar; 今日の日付を取ってくるには? cal = Calendar.getInstance(); これでおっけー。 2007/03/05に以下のを実行すると。。 System.out.println("年:" + cal.get(Calendar.YEAR)); System.out.println("月:" + cal.get(Calendar.MONTH)); System.out.println("日:" + cal.get(Calendar.DATE)); こんな結果に。 年:2007 月:2 日:5 おりょー。 2月になっちゃった。 月は0から始まる。 0から11まで。 任意の日付をセット cal.set(2007,3,5); こうすると System.out.println("年:" + cal.get(Calendar.YEAR)); System.out.println("月:" + cal.get(Calendar.MONTH)); System.out.println("日:" + cal.get(Calendar.DATE)); こんな結果に。 年:2007 月:3 日:5 お願いしたとおりに設定されるですよ。 曜日がほしい時(数字) これが必要よ。 import java.util.Date; 3月の曜日ー! cal.set(2007,3,5); cal.get(Calendar.DAY_OF_WEEK)); ってやると System.out.println( "2007/03/05の曜日:" + cal.get(Calendar.DAY_OF_WEEK)); 数字。。。 日本語にしちゃいましょーそうしましょー 曜日がほしい時(日本語) 月火水・・・って変換してくれるの。 これが必要よ。 import java.text.SimpleDateFormat; import java.util.Locale; 2007/03/05の曜日を求めてみるわ。 cal.set(2007,3,5); SimpleDateFormat weeks = new SimpleDateFormat ("EEE",Locale.JAPANESE); Date currentTime = cal.getTime(); weeks.format(currentTime); こんな風にすると。。 System.out.println("2007/03/05の曜日:" + weeks.format(currentTime)); 結果は 2007/03/05の曜日:木 日付を計算しよう addを使うですよ。 cal.getTime()が 2007/03/05の時 1ヶ月前 cal.add(Calendar.MONTH,-1); →2007/02/05 1ヶ月後 cal.add(Calendar.MONTH,1); →2007/04/05 10日前 cal.add(Calendar.DATE,-10); →2007/02/23 1日後 cal.add(Calendar.DATE,1); →2007/03/06 年も同じ。Calendar.YEARで指定すればいいわけよ。
https://w.atwiki.jp/kurowal/pages/13.html
java関連のブックマーク java覚え書き入出力 条件分岐 キャスト 書式 時刻表示 java関連のブックマーク java Platform, Standard Edition 6 javaの関数を調べれる javaの勉強 現在勉強中のページ EclipseとCVSの連携 Eclipseを用いて開発を行う際のCVS利用方法 java覚え書き 入出力 キーボード入力 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine; ファイル読み込み BufferedReader br = new BufferedReader(new FileReader(new File(fileNameIn))); ファイル書き込み BufferedWriter bw = new BufferedWriter(new FileWriter(new File(fileNameOut))); 書き込みの最後に bw.flush(); bw.close(); をしておくこと。 エラー出力 e.printStackTrace(new PrintWriter(new FileWriter("log.txt"))); 条件分岐 swich文 switch( dayOfWeek ){ case 月 System.out.println("Monday"); break; default System.out.println("そのような曜日はありません"); } キャスト String - int Integer.valueOf(str).intValue(); 継承関係にあるクラスのダウンキャスト(親のオブジェクトを子のクラスにする) if(親の参照変数 instanceof 子のクラス名){ 子のクラス名 参照変数 = (子のクラス名)親の参照変数; } 書式 配列の宣言 データ型[] 配列名 = new データ型名[要素数]; データ型[] 配列名 = {初期値, 初期値, ・・・, 初期値}; インターフェース(インターフェース側) 修飾子 intergace インターフェース名{ 定数の定義 抽象メソッドの定義 } (戻り値 メソッド名(データ型 変数名);//例) インターフェース(実装側) class クラス名 implements インターフェース名{ メソッドのオーバーライド } 抽象クラス(スーパークラス側) abstract class クラス名{ } 抽象メソッド(スーパークラス側) public abstract 戻り値の型 メソッド名(引数リスト); (メソッド定義の後が{}でなく、;になっているので注意) 時刻表示 表示フォーマットの変更 String dateStr = (new SimpleDateFormat("yyyy/MM/dd HH mm ss")).format(new Date());
https://w.atwiki.jp/memo_java/pages/9.html
企画書の提出 企画書には開発スケジュールを必ず記載 ※提出はWord Excel PP メモ帳など ・企画書に盛り込む内容の参考例 1、背景(これから開発するアプリに関連した現状や動向など) 2、必要性(現状と問題点から何が必要か) 3、アプリ導入の目的 4、アプリ導入後の期待できる効果・成果・目標など 5、開発の方針・方法など 6、対象となる業務の範囲・領域 7、アプリの構成 8、アプリ導入後の業務フロー 9、開発プロジェクトの進め方 10、開発体制と開発スケジュール、コスト見積など 【11/26】成績考査 本実習の最終目標は、「Androidアプリの設計・開発」である。 現在、制作しているAndroidアプリに関する「仕様・設計書」を提出せよ。 フォーマットは任意とするが、なるべく実務を想定して、顧客と開発側の一人二役を演じるつもりで、 「基本計画(要件定義)」「外部設計」「内部設計」「プログラム設計」などの開発プロセスを 意識して設計書を作成するように留意すること。 また、「課題発表会」のためのプレゼンテーション用スライドを今後準備する必要があるので、 MS PowerPointによるスライド形式で作成して兼用してもよい。 ※提出は、でぃずたるでーた(MS Word / Excel / PPやメモ帳など)とする ※設計書の書き方などは各自Webなどを利用してリサーチして参考にするとよい 【制作物発表会】 10分程度のプレゼンテーション 修了考査を兼ねていますので必ず参加してください 条件 1、以前作成した設計書に追加・修正があれば施して、再度提出する 2、作成した設計書に基づいて開発した青果物を発表するために、 「プレゼンテーション」をする 3、その他、詳細な指示は担当講師に従うこと