^只有真真和假假爲假java
! !true=false設計模式
$只有都爲true爲真其他都爲假數組
l 只有雙false爲假函數
雙的左邊對的就不執行 其他都同樣this
一個數^同一個數兩次那麼等於一個數而不是那個數 好比(3^5)^5爲三spa
if else 能夠和三元運算符通用 當有具體結果時 用三元運算符設計
if能夠對具體的值進行判斷,能夠對區間進行判斷,對布爾類型的表達式進行判斷對象
switch對固定的值,具體的值,進行判斷繼承
X%X 相同數值爲0內存
無限循環while(true){} for(;;){}
通常有循環次數的for條件whilel,另外for循環結束後變量消失 while結束後還能使用變量
棧內存:變量 變量所屬做用於一旦結束 變量就自動釋放
堆內存:數組和對象 你凡是new的都在堆裏 堆內存的變量只都有默認值 類型不一樣值不一樣 int是0 boolean false char
匿名函數:對象方法僅使用一次
如:Car c=new Car();
c.run();
簡寫成 new Car().run();
private:
class Person{
//私有的只在本類中有效 即便建立對象也訪問不到
private int age;
void speak(){
System.out.println("age"+age);
}
}
public class JiChen_demo {
public static void main(String[] args) {
//這裏即便new也訪問不了
}
}
構造函數:沒有返回值由於它是方法 方法名和類名一致 沒有返回值
通常沒有定義構造函數默認也有函數比l如class demo{//裏面有demo(){}}
何時用呢?在描述事物時,已經存在一些細節那麼用定義在構造函數裏
- class Person{
- private String name ;
- private int age ;
- //定義一個Person類的構造函數
- //構造函數,並且是空參數的
- Person(){
- System.out.println("person run");
- }
- public void speak(){
- System.out.println(name + ":" + age);
- }
- }
- class ConsDemo{
- public static void main(String[] args){
- //構造函數:構建創造對象時調用的函數
- //做用:能夠給對象進行初始化
- Person p = new Person();
- p.speak();
- }
- }
- class Person_1{
- private String name ;
- private int age ;
- Person_1(){
- name = "baby" ;
- age = 1;
- System.out.println("person run");
- }
- //若是有的孩子一出生就有名字
- Person_1(String n){//有參構造器
- name = n;
- }
- //若是有的孩子一出生就有名字和年齡
- Person_1(String n, int a){//有參構造器
- name = n;
- age = a;
- }
- public void speak(){
- System.out.println(name + ":" + age);
- }
- }
- class ConsDemo_1{
- public static void main(String[] args){
- Person_1 p1 = new Person_1();//建立對象Person_1的同時,已經調用了無參構造函數了。
- p1.speak();
- Person_1 p2 = new Person_1("家儀" );
- p2.speak();
- Person_1 p3 = new Person_1("張家" ,10);
- p3.speak();
- }
- }
- person run
baby:1
家儀:0
張家:10
this:調用的就是所在函數所屬對象的引用 所在函數就是好比構造函數Person(String name){this.name=name} 所在對象就是Person p1=new Person("哈哈");
this在那個函數,那個函數屬於那個對象 就是this的原理
this也能夠調用其餘函數
person(string name){
this.name=name;
}
Person(String name,int age){
this(name);//要放在第一行
this.age=age;
}
static:靜態修飾後 不須要建立對象直接輸出能夠打印
好比:class Person{
String name;
static String guoji="CN";
public void show(){
sop(guoji+":"+name);
}
class abc{
主函數{
sop(Person.guoji);
}
}
}
靜態變量 能夠對變量進行調用 類名也能夠調用
靜態方法只能訪問靜態成員(變量和函數),好比以下代碼:
class Person{
String name;
static String country ="CN";
}
public static void show(){
sop(name=":"+country);//報錯了 由於有非靜態
}
class StaticDemo{
主函數{
Person.show();
}
}
靜態中不能this和super關鍵字方法 記住哦主函數是靜態的
靜態何時:只能修飾成員(附屬修飾函數這就是何時用)好比我變量有特有數據是相同的,函數要不要修飾就看一點,是否訪問到這個特有的對象
靜態代碼塊隨着類的執行而執行,用於初始化(好比我有不少靜態成員我須要一個計算 在static{}裏執行後直接能夠用了)
好比class StaticDemo{
static{
}
class xx{主函數}
\{構造函數代碼塊 能全部的對象初始化} 好比我下面有個構造函數 輸出娃娃 在構造代碼塊裏放入那個函數就因此娃娃了
設計模式就是解決問題的方法,單例設計:一個類在內存裏的對象惟一性
必須對多個程序使用同一個配置信息時,就必須對該對象保證惟一性
如何保證惟一性:
1.私有化該類的構造函數
2.經過new在本類中建立一個本類對象
3.定義一個公有的方法,將建立的對象返回
javase支持單繼承就是class A{} classB{}class C extends classA() 可是不支持多繼承就是classC extends classA,B
java裏支持多繼承 C繼承B B繼承A