PHPの基礎
ちょっと日にちが空いてしまいましたが、、、変わらずやっていきます!!
echo : 出力の際に入力する
例:
<php? echo “忍者”; ?>
変数の入力
例:
$ name = ’忍者’;
のようにする
.を用いると文字列の連結ができる
例:
$lesson = ‘php’;
echo $lesson.’入門’;
結果:php入門
.=で省略して記述もできる
・配列
例:
$names = array(‘john’, ‘Kate’, ‘Bob’);
配列に追加する:
$names[] = ‘Mary’
・foreach
例:
$colors = array (‘apple’ => ‘red’, ‘banana’ => ‘yellow’, ‘grape’ => ‘purple’);
foreach ($colors as $key => $value) {
echo $key.’:’.$value.’ ’;
}
・フォームのデータを受け取る
例:
index.php
<form action=“sent.php”>
<input name=“name”>
<input name=“email”>
</form>
sent.php
eho $_POST[‘name’];
eho $_POST[‘email’];
・セレクトボックスの作り方:セレクトタグにオプションタグを並べる
例:
index.php
<select>
<option>リンゴ</option>
<option>バナナ</option>
<option>みかん</option>
</select>
rubyの時よりも記述の内容が簡単に感じますね、、、
ただ、<?php echo "こんにちは" ?>
のように出力だけをするならrubyの
puts "こんにちは"
の方が短くて簡単かなー。
各言語間に共通点があるため勉強がしやすく感じます。
Javascriptの基礎2
投稿のしていなかった学習内容を投稿します!
・関数の定義
例:
const 定数名 = function(){
まとめたい処理内容
};
関数を呼び出すときは
定数名();
と記述する
・アロー関数:通常の関数よりもシンプルに書くことができることができる
例:
const introduce = () => {
console.log(“こんにちわ”);
};
・最大値を出力する関数を作ってみよう
const number1 = 103;
const number2 = 72;
const number3 = 189;
const getMax = (a,b,c) => {
let max = a;
if (max < b){
max = b;
}
if (max < c){
max = c;
}
return max;
};
console.log(`最大値は${getMax(number1, number2, number3)}です`);
・クラスの定義
例:
class Animal {
}
・インスタンスの生成
例:
class Animal {
}
const animal = new Animal();
・コンストラクタ:インスタンスを生成する時に実行したい処理や設定を追加するための機能
例:
class Animal {
constructor () {
console.log(“こんにちわ”);
}
}
const animal = new Animal();
new Animal();でメソッドが呼び出されこんにちわが出力される
・プロパティの値の追加:this.プロバティ= 値
例:
class Animal {
constructor () {
this.name = “レオ”;
}
}
・コンストラクタに引数を持たせる
例:
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const animal = new Animal("モカ", 8);
console.log(`名前: ${animal.name}`);
console.log(`年齢: ${animal.age}`);
・メソッド内で他のメソッドを使う:this.メソッド名();とする
・継承の書き方
例:Animalクラスを継承したDogクラス
class Dog extends Animal {
}
・メソッドのオーバーライド:子クラスのメソッドが親クラスのメソッドを上書きすること
*コンストラクタも同様にオーバーライドすることができる
例:
class 子クラス extends 親クラス {
constructor() {
super()
}
}
・export:export default クラス名とすることでそのクラスを他のファイルに渡すことができます。
・import:import クラス名 from “./ファイル名”とすることで読み込むことができる
・export default:エクスポート時の名前とインポート時の値の名前に違いがあっても問題はないが、1ファイル1つの値しか使うことができない
・名前付きのエクスポート
例:
export {値の名前}
import{値の名前}from “./ファイル名”;
・パッケージのimport
例:
import 定数名 from “パッケージ名”;
javascript基礎よりものフレームワークが重要な気がする、、、
Javaの基礎5
今日も頑張っていきます!
・継承:既存のクラスのフィールドやメソッドをブツのクラスに引き継ぐ機能
・スーパークラス:継承されるクラス
・サブクラス:継承してできる新しいクラス
例:
class スーパークラス名 {
処理..
}
class サブクラス名 extends スーパクラス名 {
}
・protected:クラス内とサブクラスからのみアクセスを許すフィールド
例:
class Vehicle{
protected int distance = 0;
}
・抽象メソッド:具体的な処理が決まっていない未完成のメソッド
例:
class Vehicle {
abstract public void run(int distance);
}
・抽象クラス:インスタンスを生成できない未完成のクラス
例:
abstract class Vehicle {
abstract public void run(int distance);
}
継承の部分は理解が難しいですね。
引き続き頑張っていきます!
Javascriptの基礎1
基礎の部分は言語が変わっても内容は似ているのでいい復習になりますね。
あと何度も学んでいるのですぐ理解できるので自身の成長を感じられます!
前置きはこの程度にして、、、
今日も張り切っていきましょう!
・プログラムの実行
例:
console.log(“Hello World”);
末尾のセミコロンはない場合でも動作することが多いがつけた方が良い
・変数の設定: let 変数名 = 値
・定数:一度代入した値を更新することができない
例:
const name = “toshi” ;
・テンプレートリテラル:文字列の中に変数を埋め込むときに使用する
例:
${定数}、バッククォーテーションで囲む
console.log(`${name}は${age}歳です`);
・if文
例:
if (age >= 20){
console.log(“年齢は20歳以上です”);
}
・比較演算子
例:
console.log(number === 12);
console.log(name !== “John”);
・else if
例:
if (age >= 20) {
console.log("私は20歳以上です");
} else if (age >= 10) {
console.log("私は20歳未満ですが、10歳以上です");
}
else {
console.log("私は10歳未満です");
}
・switch文:switch(条件の値){処理}
case “値”で処理を分ける
breakで処理を終了する
caseのどれにも一致しない場合defaultのブロックが実行される
例:
const rank = 5;
switch (rank) {
case 1:
console.log("金メダルです!");
break;
case 2:
console.log("銀メダルです!");
break;
case 3:
console.log("銅メダルです!");
break;
// defaultの処理を追加してください
default:
console.log("メダルはありません");
break;
}
・while文:条件を満たす限り処理を続ける
例:
let number = 1;
while (number <= 100){
console.log(number);
number += 1;
}
・for文
for(変数の定義; 条件式; 変数の更新) {
処理
}
例:
for (let number = 1; number <= 100; number ++){
console.log(number);
}
・配列
例:
const animals = ["dog", "cat", "sheep"];
console.log(animals);
配列にはインデックス番号がついている
取得する時にはanimals[0]のように記述する
・for文を利用した配列の出力方法
例:
const animals = ["dog", "cat", "sheep"];
for (let i = 0; i < 3; i ++ ){
console.log(animals[i]);
}
・オブジェクト:プロパティ呼ばれる名前をつけて複数の値を管理する
{プロパティ1: 値1, プロパティ2: 値2}
例:
const character = {name:”よしき”, age:14};
console.log(character);
オブジェクトを取り出すときは:オブジェクト.プロパティ名 とする
例:
const character = {name:”よしき”, age:14};
console.log(character.name);
character.name = “たいじ”; とすることで値の変更もできる
・オブジェクトを要素に持つ配列
例:
const characters = [
{name: “トシ”, age: 14},
{name: “ヒデ”, age: 1000}
];
console.log(characters[0]);
console.log(characters[1].name);
・undefined:配列の存在しないインデックス番号や要素や、オブジェクトの存在しないプロパティの要素を取得しようとすると出力される
・複雑なオブジェクトを扱う
例:
const cafe = {
name: "Progateカフェ",
businessHours: {
opening: "10:00(AM)",
closing: "8:00(PM)"
}
};
console.log(`店名:${cafe.name}`);
console.log(`営業時間:${cafe.businessHours.opening}から${cafe.businessHours.closing}`);
複雑なオブジェクトの取得は少し前の自分には難しい内容だったのですが、さらっとできるようになったのは嬉しいです!!
SQLの基礎 4
今日もはりきっていきましょう!
・INSERT :テーブルにレコードを挿入する時に使用する
多くの場合idカラムにはAUTO INCREMENTという機能が使用される
AUTO INCREMENTとは自動で増加するといった意味で、データが作成される時に助同で割り当てられます。
例:
insert into students (name, course)
values(“Kate”, “Java”);
・UPDATE:データを更新したいときに使用する
複数変更したいカラムがある場合、コンマで区切る
例:
UPDATE students
SET name = “Jordan”, course = “HTML”
WHERE id = 6;
*WHEREで条件を指定しないとカラム内の全データが更新されてしまうので注意
*UPDATE実行ごはデータを戻すことができないので、実行前に一度SELECTを実行して、操作するデータを確認する
・DELETE:レコードを削除する時に使用する
クエリ実行ごはレコードを元に戻すことができないので、SELECTでレコードを確認してから削除すること
例:
DELETE FROM students
WHERE id = 7;
*WHEREでレコードを指定しないとテーブル内の全レコードが削除されるので注意
4つの構文のおさらい
・SELECT:取得
例:SELECT カラムA, カラムB FROM テーブル名
・INSERT:挿入
例:INSERT INTO テーブル名(カラム名A, カラム名B)
VALUES(値1, 値2、、、);
・UPDATE:更新
例:UPDATE テーブル名
SET カラムA = 値1, カラムB = 値2
WHERE 条件;
・DELETE:削除
例:DELETE FROM テーブル名
WHERE 条件;
ひとまずSQLの基礎はここまでとなります(テキストの内容が終わったので、、、)
今後はJavascriptの基礎を勉強しようと思っています!
Javaの基礎3
今日も張り切っていきましょう!
・オブジェクト
例:自己紹介をする、年齢などの情報を持ったプログラムがこれに当てはまる
・オブジェクトの中には情報と振る舞いが含まれる
・インスタンス(実体)とはオブジェクトの別名である
・クラスはインスタンスの設計図である
・クラスの中に情報や振る舞いを設計する
・インスタンスの生成:new Person ();
・インスタンスは変数に代入して使用します
例:クラス名 変数名 = new クラス名()とする
Person person1 = new person ();
・インスタンスは大量に作ることができる
例;
Person person2 = new person();
Person person3 = new person();
Person person4 = new person();
・インスタンスの情報に当たるものをインスタンスフィールドと呼ぶ
・インスタンスの振る舞いにあたるものをインスタンスメソッドと呼ぶ
・インスタンスメソッドの定義
例:
class Person {
public void hello(){
System.out.println(“こんにちわ”);
}
}
*staticがない点に注意
例:
Person person1 = new Person();
Person person2 = new Person();
person1.hello();
person2.hello();
・インスタンスフィールドの定義 : public データ型 変数名
例:
class Person {
public String name;
}
・インスタンスフィールドへのアクセス
例;
Person person1 = new Person();
person1.name = “suzuki”;
System.out.println(person1.name);
・this :thisは呼ばれた時に、そのメソッドを呼び出しているインスタンスに置き換えられる
例:
Person.java
class Person {
public String name;
publid void hello () {
System.out.println(“こんにちは、私は”+ this.name + “です”);
}
}
Main.java
Person person1 = new Person();
person1.name = “suzuki”;
person.hello();
結果:こんにちは、私はsuzukiです と出力される
・コンストラクタ:newを使ってインスタンスを生成した後に自動で呼び出されるメソッド
コンストラクタの定義方法
・コンストラクタ名はクラス名と同じにする
・戻り値を書いてはいけない
・voidを書いてはいけない
例:
Person() {
System.out.println("インスタンスが生成されました");
}
・コンストラクタに情報を渡す
例:
class Main {
public static void main(String[] args) {
Person person1 = new Person("Kate Jones");
person1.hello();
Person person2 = new Person("John Christopher Smith");
person2.hello();
}
}
class Person {
public String name;
Person(String name) {
System.out.println("インスタンスが生成されました");
this.name = name;
}
public void hello() {
System.out.println("こんにちは、私は" + this.name + "です");
}
}
・クラスフィールドの定義:public static データ型 変数名;
・クラスフィールドへのアクセス:クラス名.クラスフィールド名
例:countフィールド
class Person {
public static int count = 0;
Person(String firstName, ….){
Person.count++;
}
}
インスタンス生成の度にcountが1追加されていく
・クラスメソッド:public static 戻り値の型 メソッド名() {}
・クラスメソッドの呼び出し方:クラス名.メソッド名()
・コンストラクタのオーバーロード:引数の異なるコンストラクタを新たに定義する
例:
Person(String firstName, String lastName, int age, double height, double weight) {
Person.count++;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.height = height;
this.weight = weight;
}
Person(String firstName, String middleName, String lastName, int age, double height, double weight) {
Person.count++;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.height = height;
this.weight = weight;
this.middleName = middleName;
}
・this():コンストラクタから他のコンストラクタを呼び出すことができる
*this()はコンストラクタの先頭でしか呼び出せません
例:
Person(String firstName, String lastName, int age, double height, double weight) {
Person.count++;
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.height = height;
this.weight = weight;
}
Person(String firstName, String middleName, String lastName, int age, double height, double weight) {
this(firstName, lastName, age, height, weight);
this.middleName = middleName;
}
・middleNameがnullかどうかによって変える値を変更する
例:
public String fullName() {
if (this.middleName == null) {
return this.firstName + " " + this.lastName;
} else {
return this.firstName + " " + this.middleName + " " + this.lastName;
}
}
カプセル化:回路を隠すこと
・具体的にはフィールドとメソッドへのアクセスを制限すること
・クラスの外部からアクセスできるようにするにはpublicを、アクセスできないようにするにはprivateを用い て定義します
・フィールドのアクセス権をprivateにすると、フィールドにクラスの外からアクセスすることができなくなる
・privateでもクラス内からはアクセスすることが可能である
・ゲッター:getフィールド名と命名するのが一般的
フィールドをprivateにした上で、クラス外から安全にフィールドの値を取得するために、フィールドのあたいだけを返すだけのメソッドを定義する
例:
public String getMiddleName() {
return this.middleName;
}
System.out.println("ミドルネームを" + person1.getMiddleName() + "に変更しました");
person1.printData();
これでprivateのフィールドの値を取得することができる
・セッター:setフィールド名と命名するのが一般的
フィールドの値を変更するメソッドを特にセッターという
カプセル下の定石
・フィールド:private
・メソッド:public
例:
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
person1.setMiddleName("Claire");
System.out.println("ミドルネームを" + person1.getMiddleName() + "に変更しました");
person1.printData();
理解がむずかしい部分もありますが、繰り返し学んでいきたいと思います!
SQLの基礎 3
今日も勉強していきます!
・サブクエリ:クエリの中にクエリを書くことができる
例:
SELECT name
FROM players
WHERE goals > (
-- サブクエリ
SELECT goals
FROM players
WHERE name = "ウィル"
)
;
処理はサブクエリから行われる
・AS:カラム名などに別名を定義することができる
例:
SELECT name AS "身長180cm以上の選手"
FROM players
WHERE height >= 180 ;
・JOIN:JOINはONで条件を指定して複数のテーブルを1つに結合する
例:
SELECT *
FROM players ←テーブル名
JOIN countries ←テーブル名
ON players.country_id = countries.id ←結合の条件
;
*JOINはNULLのデータを取得しない!
・LEFT JOIN:外部キーがNULLのレコードもNULLのまま実行結果に表示される
例:
SELECT players.name AS "選手名", teams.name AS "前年所属していたチーム"
FROM players
LEFT JOIN teams
ON players.previous_team_id = teams.id
;
・JOINは複数回行うことができる
例:
SELECT *
FROM players
JOIN countries
ON players.country_id = countries.id
LEFT JOIN teams
ON players.previous_team_id = teams.id
;
*FROMの記述は一度でいい点に気を付ける
サブクエリを記述するときによく手が止まってしまう、、、
あとGROUP BYの理解が足りない印象。。
引き続き頑張っていきます!!