快捷键的使用

快捷键大全

说明

public static void main(String[] args)

一、JAVA语言概述


图形化界面操作与命令行操作

常用命令行指令


计算机语言划分

JAVA语言历史及技术体系平台



java语言的特点




JVM跨平台与垃圾收集机制





JAVA语言环境搭建、下载安装







安装完后配置环境变量path


第一个java程序HelloWorld



单行、多行注释





文档注释


API文档说明



开发工具


小测试


二、java基本语法

1.关键字和保留字



2. 标识符命名规则与规范


3.变量

















4.进制





计算机底层都以补码的方式存储数据!




小测试

5.运算符

算数运算符






赋值运算符



比较运算符

逻辑运算符







位运算符





三元运算符



运算符的优先级

6.流程控制


if-else结构



小测试

Scanner从键盘获取数据











switch—case结构





4.




循环结构

























eclipse使用



三、数组



一维数组





多维数组











数组中常见算法

























Arrays工具类




数组中常见异常


四、方法


方法重载





可变个数的形参


值传递机制

尚硅谷211课

package com.djw;public class test1 {public static void main(String[] args) {test1 test=new test1();test.first();}public class value{int i=15;}public void first(){int i=5;value v=new value();v.i=25;second(v,i);System.out.println(v.i);}public void second(value v,int i){i=0;v.i=20;value val=new value();v=val;System.out.println(v.i+" "+i);//20 0}
}

package com.djw;public class test1 {public static void main(String[] args) {circle cir= new circle();passobject pass=new passobject();pass.printareas(cir,5);}
}
class circle {double radius;public double findArea(){return Math.PI*radius*radius;}
}
class passobject{public void printareas(circle c,int time){for (int i=0;i<time;i++){c.radius=i;System.out.print(i+"  ");System.out.println(c.findArea());}}
}

递归方法



五、面向对象





面向过程与面向对象




基本元素:类和对象


类的内部结构1:属性和方法



如何使用类?






类属性和局部变量



类中方法的声明和使用






package packagepractice;public class lei_duixiang {public static void main(String[] args) {//创建类对象lei p1=new lei();p1.eat();System.out.print(p1.age);System.out.print(p1.getnation("China"));}
}
class lei{//属性String name;int age=1;//方法public void eat() {System.out.print("吃饭了先生");}public String getnation(String nation) {return nation;}}


package packagepractice;public class lianxi {public static void main(String[] args) {person p1=new person();p1.name="TOM";p1.age=18;p1.sex="male";p1.study();p1.showage();System.out.println("addage: "+p1.addage(2));/*********************************/person p2=new person();p2.showage();System.out.println("addage: "+p2.addage(2));}}
class person{String name;int age;String sex;public void study(){System.out.println("studying");}public void showage(){System.out.println("age: "+age);}public int addage(int i) {age+=i;return age;}
}

package packagepractice;public class method {public static void main(String[] args) {method pi= new method();//3.1
//      pi.wujiaoxing();//3.2
//      System.out.print(pi.wujiaoxing1());//3.3System.out.print(pi.wujiaoxing2(10,8));}public void wujiaoxing() {for(int i=0;i<10;i++) {for(int j=0;j<8;j++) {System.out.print("*");}System.out.println();}}public int wujiaoxing1() {for(int i=0;i<10;i++) {for(int j=0;j<8;j++) {System.out.print("*");}System.out.println();}return 10*8;}public int wujiaoxing2(int m,int n) {for(int i=0;i<m;i++) {for(int j=0;j<n;j++) {System.out.print("*");}System.out.println();}return m*n;}}

package packagepractice;public class xianxi {public static void main(String[] args) {//声明一个Student对象数组Student[] stus=new Student[20];for(int i=0;i<20;i++) {stus[i]=new Student();//给属性赋值//学号stus[i].number=(i+1);//年级1-6stus[i].state=(int)(Math.random()*6+1);//成绩0-100stus[i].score=(int)(Math.random()*(100));}//遍历学生数组for(int i=0;i<stus.length;i++) {//          System.out.print(stus[i].number+" ");
//          System.out.print(stus[i].state+" ");
//          System.out.print(stus[i].score+" ");
//          System.out.println();System.out.println(stus[i].info());}System.out.println();//打印三年级学生信息for(int i=0;i<stus.length;i++) {if(stus[i].state==3) {System.out.println(stus[i].info());}}System.out.println();//冒泡排序,按照学生的成绩遍历学生信息(排序的是对象!!不是成绩)for(int i=0;i<stus.length-1;i++) {for(int j=0;j<stus.length-1-i;j++)if(stus[j].score>stus[j+1].score) {Student temp=stus[j];stus[j]=stus[j+1];stus[j+1]=temp;}}for(int i=0;i<stus.length;i++) {System.out.println(stus[i].info());}}
}
class Student{int number;int state;int score;public String info() {return "学号:"+number+" ,年级:"+state+" ,成绩:"+score;}
}

类的内部结构2:构造器(或构造方法)



package com.djw;public class PersonTest {public static void main(String[] args) {Person P=new Person();P.setAge(6);System.out.println(P.getAge());Person P1=new Person("Ben",21);System.out.println(P1.getName());P1.setName("TOM");System.out.println(P1.getAge()+P1.getName());}
}
public class Person {//属性private int age;private String name;//构造器public Person(){age=18;}public Person(String n,int a){name=n;age=a;}//方法public void setAge(int a){if (a<0||a>130){System.out.println("输入数据非法");}else {age=a;}}public int getAge(){return age;}public void setName(String n){name =n;}public String getName(){return name;}
}

package com.djw;public class TriAngleTest {public static void main(String[] args) {TriAngle tri =new TriAngle(5.2,3.77);tri.setBase(2.1);tri.setHeight(6.2);System.out.println(tri.getBase()+" "+tri.getHeight());}
}
public class TriAngle {//属性private double base;private double height;//构造器public TriAngle(){}public TriAngle(double b,double h){base=b;height=h;}//方法public void setBase(double b){base= b;}public double getBase(){return base;}public void setHeight(double h){height=h;}public double getHeight(){return height;}
}

JAVABean

封装性





package com.djw;public class test1 {public static void main(String[] args) {animal an=new animal();an.setLegs(-6);an.show();}
}
class animal{private int legs;//对属性设置public void setLegs(int l){if (l>=0 && l%2==0){legs=l;}else {legs=0;}}//对属性的获取public int getLegs(){return legs;}public void show(){System.out.println(legs);}
}

package com.djw;public class PersonTest {public static void main(String[] args) {Person P=new Person();P.setAge(6);System.out.println(P.getAge());}
}public class Person {private int age;public void setAge(int a){if (a<0||a>130){System.out.println("输入数据非法");}else {age=a;}}public int getAge(){return age;}
}




this关键字

UML类图


package com.djw;public class Test {public static void main(String[] args) {person p= new person();p.setAge(15);System.out.println(p.age);person p1= new person();System.out.println(p1.age);}
}
class person{String name;int age;public void setName(String name){this.name=name;}public void setAge(int age) {this.age = age;}
}


//课时233

package com.djw;package com.djw;public class BOYGIRLTEST {public static void main(String[] args) {BOY boy=new BOY("罗密欧",25);boy.shout();GIRL girl=new GIRL("朱丽叶",18);girl.marry(boy);System.out.println(girl.getAge());GIRL girl1=new GIRL("祝英台",19);int compare=girl.compare(girl1);if (compare>0){System.out.println(girl.getName()+"年龄更大");}else {System.out.println(girl1.getName()+"年龄更大");}}
}public class BOY {//属性private String name;private int age;//构造器public BOY(String name,int age){this.age=age;this.name=name;}//方法public void setName(String name){this.name=name;}public String getName(){return name;}public void setAge(int age){this.age=age;}public int getAge(){return age;}public void marry(GIRL girl){System.out.println(name+"想娶"+girl.getName());}public void shout(){if (age>=22){System.out.println("你可以合法登记:"+name);}else {System.out.println("多谈一谈恋爱");}}
}
public class GIRL {private String name;private int age;//构造器public GIRL(String name,int age){this.name=name;this.age=age;}//方法public void setName(String name){this.name=name;}public String getName(){return name;}public void setAge(int age){this.age=age;}public int getAge(){return age;}public void marry(BOY boy){if (age<boy.getAge()){System.out.println(name+":我想嫁给你");boy.marry(this);}}public int compare(GIRL girl){return this.age-girl.age;}
}

练习:

package com.djw;public class BankTTEST {public static void main(String[] args) {Bank bank=new Bank();bank.addCustomer("JANE","SMITH");bank.getCustomer(0).setAccount(new Account(2000));bank.getCustomer(0).getAccount().withdraw(500);double balance=bank.getCustomer(0).getAccount().getBalance();System.out.println("客户:"+bank.getCustomer(0).getFirstName()+"余额为"+balance);bank.addCustomer("万里","杨");System.out.println(bank.getCustomer(1).getFirstName());}
}
public class Account {private double balance;//创建构造器public Account(double init_balance){this.balance=init_balance;}public double getBalance(){return balance;}//存钱public void deposit(double amt){if (amt>0){balance+=amt;System.out.println("存钱成功");}}//取钱public void withdraw(double amt){if (balance>=amt){balance-=amt;System.out.println("取钱成功");}else {System.out.println("余额不足");}}
}
public class Customer {private String firstName;private String lastName;private Account account;//构造器public Customer(String f,String l){firstName=f;lastName=l;}public String getFirstName(){return firstName;}public String getLastName(){return lastName;}public void  setAccount(Account account){this.account=account;}public Account getAccount(){return account;}
}
public class Bank {private Customer customer[];private int numberofCustomers;//构造器public Bank(){customer=new Customer[10];}//添加用户public void addCustomer(String f,String l){Customer cust=new Customer(f,l);customer[numberofCustomers]=cust;numberofCustomers++;}//用户数量public int getNumberofCustomers(){return numberofCustomers;}//public Customer getCustomer(int index){if (index>=0&&index<numberofCustomers){return customer[index];}return null;}
}


package关键字

MVC设计模式


import关键字

小项目(增删改查)







package Customer_model;public class Customer {//属性private String name;private char gender;//性别private int age;private String phone;private String email;//构造器public Customer(){}public Customer(String name, char gender, int age, String phone, String email) {this.name = name;this.gender = gender;this.age = age;this.phone = phone;this.email = email;}//get/set方法public String getName() {return name;}public void setName(String name) {this.name = name;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}
}

package Customer_controller;import Customer_model.Customer;public class CustomerList {private Customer customers[];private int total = 0;//  在构造器中初始化customers数组public CustomerList(int totalCustomer) {customers = new Customer[totalCustomer];//初始化customers数组,记录客户对象个数}//客户添加到数组中public boolean addCustomers(Customer customer){if (total>=customers.length){return false;}else {customers[total]=customer;total++;return true;}}//修改客户信息public   boolean replaceCustomer(int index,Customer customer){if (index<0||index>=total){return false;}else {customers[index]=customer;return true;}}//删除客户信息public  boolean deleteCustomer(int index){if (index<0||index>=total){return false;}for (int i=index;i<total-1;i++){customers[i]=customers[i+1];}//索引最后元素置空customers[total-1]=null;total--;return true;}//获取客户信息public Customer[] getALLCustomers(){Customer[] custs= new Customer[total];for (int i=0;i<total;i++){custs[i]=customers[i];}return custs;}//获取指定位置客户信息public  Customer getCustomer(int index){if (index<0||index>=total){return null;}return  customers[index];}//  获取存储客户的数量public int getTotal(){return total;}
}

package Customer_view;import Customer_controller.CustomerList;
import Customer_model.Customer;
import util.CMUtility;public class CustomerView {CustomerList customerList=new CustomerList(10);//构造器public CustomerView(){Customer customer=new Customer("王陶",'男',23,"1332588515","888446@qq.com");customerList.addCustomers(customer);}//显示客户管理软件界面public void enterMainmenu() {boolean flag = true;while (flag) {System.out.println("\n-------------客户信息管理软件---------------");System.out.println("               1.添加客户");System.out.println("               2.修改客户");System.out.println("               3.删除客户");System.out.println("               4.客户列表");System.out.println("               5.退出\n");System.out.println("               请选择(1-5):");char menu = CMUtility.readMenuSelection();switch (menu) {case '1':addNewcustomer();break;case '2':modifyCustomer();break;case '3':deleteCustomer();break;case '4':listallcustomers();break;case '5':System.out.println("确认是否退出(Y/N):");char exit = CMUtility.readConfirmSelection();if (exit == 'Y') {flag = false;}}}}//显示客户列表private void listallcustomers(){System.out.println("---------客户列表------------");if (customerList.getTotal()==0){System.out.println("没有客户信息");}else {System.out.println("编号\t姓名\t性别\t年龄\t电话\t邮箱");Customer custs[]= customerList.getALLCustomers();for (int i = 0; i < custs.length; i++) {Customer cust=custs[i];System.out.println((i+1)+"\t"+cust.getName()+"\t"+cust.getGender()+"\t"+cust.getAge()+"\t"+cust.getPhone()+"\t"+cust.getEmail());}}System.out.println("---------客户列表完成-----------");}//添加客户private void addNewcustomer(){System.out.println("-------------添加客户------------");System.out.println("姓名:");String name=CMUtility.readString(10) ;System.out.println("性别:");char gender=CMUtility.readChar();System.out.println("年龄:");int age=CMUtility.readInt();System.out.println("电话:");String phone=CMUtility.readString(13);System.out.println("邮箱:");String email=CMUtility.readString(30);//将上述数据封装到对象中Customer customer=new Customer(name,gender,age,phone,email);boolean success=customerList.addCustomers(customer);if (success){System.out.println("-----------添加完成------------");}else {System.out.println("-------客户目录已满添加失败-------");}}//修改客户private  void modifyCustomer() {System.out.println("------------修改客户-------------");Customer cust;int number;for (; ; ) {System.out.print("请选择待修改客户编号(-1退出):");number = CMUtility.readInt();if (number == -1) {return;}cust = CustomerList.getCustomer(number-1);if (cust == null) {System.out.println("无法找到指定客户");} else {break;}}//修改客户信息System.out.println("姓名(" + cust.getName() + "):");String name = CMUtility.readString(10, cust.getName());System.out.println("性别(" + cust.getGender() + "):");char gender = CMUtility.readChar(cust.getGender());System.out.println("年龄(" + cust.getAge() + "):");int age = CMUtility.readInt(cust.getAge());System.out.println("电话(" + cust.getName() + "):");String phone = CMUtility.readString(13, cust.getPhone());System.out.println("邮箱(" + cust.getName() + "):");String email = CMUtility.readString(30, cust.getEmail());Customer newCust = new Customer(name, gender, age, phone, email);boolean isreplaced = CustomerList.replaceCustomer(number - 1, newCust);if (isreplaced) {System.out.println("---------------修改完成----------------");} else {System.out.println("---------------修改失败----------------");}}public  void  deleteCustomer(){//删除客户System.out.println("----------------删除客户---------------");int number;for (;;){System.out.println("请选择删除客户编号(-1退出):");number=CMUtility.readInt();if (number==-1){return;}Customer customer=CustomerList.getCustomer(-1);if (customer==null){System.out.println("无法找到指定客户");}else {break;}}//找到客户后删除System.out.println("是否确认删除(Y/N):");char delete=CMUtility.readConfirmSelection();if (delete=='Y'){boolean detesucess=CustomerList.deleteCustomer(number-1);if (detesucess){System.out.println("删除成功");}else {System.out.println("删除失败");}}else {return;}}public static void main(String[] args) {CustomerView view=new CustomerView();view.enterMainmenu();}
}

继承性






package jicheng;public class Mankind {private int sex;private int salary;public Mankind(){}public Mankind(int sex, int salary) {this.sex = sex;this.salary = salary;}public void manorwoman(){if (sex==1){System.out.println("man");}else if (sex==0){System.out.println("woman");}}public void employed(){String info=(salary==0)?"no job":"have job";System.out.println(info);}public int getSex() {return sex;}public void setSex(int sex) {this.sex = sex;}public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}
}
public class Kids extends Mankind{private int yearsold;public void printage(){System.out.println("年龄为:"+yearsold);}//构造器public Kids(){}public Kids(int yearsold) {this.yearsold = yearsold;}public int getYearsold() {return yearsold;}public void setYearsold(int yearsold) {this.yearsold = yearsold;}
}
public class Kidstest {public static void main(String[] args) {Kids kid=new Kids(12);kid.printage();kid.setSalary(2);System.out.println("薪水为:"+kid.getSalary());kid.setSex(1);kid.manorwoman();kid.employed();}
}

package jicheng;public class Circle {private double radius;public Circle() {radius = 1.0;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}public double findarea(){return Math.PI*radius*radius;}
}public class Cylinder extends Circle{private double length;public Cylinder(){length=1.0;}public double getLength() {return length;}public void setLength(double length) {this.length = length;}public double findvolume(){return findarea()*getLength();}
}public class Cylindertest {public static void main(String[] args) {Cylinder cy= new Cylinder();cy.setLength(3);cy.setRadius(2);System.out.println(cy.findvolume());}
}

方法的重写



super关键字


子类对象实例化过程



package jicheng;public class Account {private int id;private double balance;private double annualInterestRate;public Account(int id, double balance, double annualInterestRate) {this.id = id;this.balance = balance;this.annualInterestRate = annualInterestRate;}public int getId() {return id;}public void setId(int id) {this.id = id;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}public double getAnnualInterestRate() {return annualInterestRate;}public void setAnnualInterestRate(double annualInterestRate) {this.annualInterestRate = annualInterestRate;}//返回月利率public double getMonthlyinterest(){return annualInterestRate/12;}//取钱public void withdraw(double amount){if (balance>=amount){balance-=amount;return;}System.out.println("余额不足");}//存钱public void deposit(double amount){if (amount>=0){balance+=amount;}}
}
public class AccountTest {public static void main(String[] args) {Account account= new Account(1122,20000,0.045);account.withdraw(30000);System.out.println(account.getBalance());account.withdraw(1000);System.out.println(account.getBalance());account.withdraw(300);System.out.println(account.getBalance());System.out.println("月利率为: "+(account.getMonthlyinterest()*100)+"%");}
}
public class CheckAccount extends Account{private double overdraft;//可透支限额public CheckAccount (int id, double balance, double annualInterestRate,double overdraft){super(id,balance,annualInterestRate);this.overdraft=overdraft;}public void withdraw(double amount){if (getBalance()>=amount){super.withdraw(amount);}else if (overdraft>=amount-getBalance()){setBalance(0);overdraft-=(amount-getBalance());}else {System.out.println("超过可透支限额:");}}public double getOverdraft() {return overdraft;}public void setOverdraft(double overdraft) {this.overdraft = overdraft;}
}
public class CheckAccounttest {public static void main(String[] args) {CheckAccount account=new CheckAccount(1122,2000,0.045,5000);account.withdraw(500);System.out.println("账户余额: "+account.getBalance());System.out.println("可透支额度:"+account.getOverdraft());account.withdraw(1500);System.out.println("账户余额: "+account.getBalance());System.out.println("可透支额度:"+account.getOverdraft());account.withdraw(4500);System.out.println("账户余额: "+account.getBalance());System.out.println("可透支额度:"+account.getOverdraft());}

多态性


package duotai;public class Animaltest {public void func(Animal animal){//Animal animal=new Dog()animal.eat();animal.shout();}public static void main(String[] args) {Animaltest animaltest=new Animaltest();animaltest.func(new Dog());}}
class  Animal{public void eat(){System.out.println("动物:进食");}public void shout(){System.out.println("动物:叫");}
}
class Dog extends Animal{public void eat(){System.out.println("狗吃骨头");}public void shout(){System.out.println("汪!");}
}
class Cat extends Animal{public void eat(){System.out.println("猫吃鱼");}public void shout(){System.out.println("喵!");}
}



向下转型


instanceof关键字


equals()方法





1.

package exer7;public class OrderTest {public static void main(String[] args) {Order order1=new Order(11,"AA");Order order2=new Order(22,"BB");Order order3=new Order(22,"BB");System.out.println(order1.equals(order2));System.out.println(order2.equals(order3));}
}
class Order{private int orderId;private String orderName;public Order(int orderId, String orderName) {this.orderId = orderId;this.orderName = orderName;}public int getOrderId() {return orderId;}public void setOrderId(int orderId) {this.orderId = orderId;}public String getOrderName() {return orderName;}public void setOrderName(String orderName) {this.orderName = orderName;}public boolean equals(Object obj){if (this==obj){return true;}if (obj instanceof Order){Order order=(Order) obj;return this.orderId==order.orderId&&this.orderName.equals(order.orderName);}return false;}
}

2.重写equals()

package exer7;public class Mydatetest {public static void main(String[] args) {MyDate m1=new MyDate(14,13,1998);MyDate m2=new MyDate(14,13,1998);if (m1==m2){System.out.println("m1==m2");}else {System.out.println("m1!=m2");}if (m1.equals(m2)){System.out.println("m1 equals m2");}else {System.out.println("m1 not equals m2");}}}
class MyDate{private  int day;private int month;private int year;public MyDate(int day, int month, int year) {this.day = day;this.month = month;this.year = year;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}@Overridepublic boolean equals(Object obj) {if (this==obj){return true;}if (obj instanceof MyDate){MyDate myDate=(MyDate)obj;return this.day==myDate.day&&this.month==myDate.month&&this.year==myDate.year;}return false;}
}

toString()方法



包装类

单元测试

包装类使用



基本数据类型-----》包装类

包装类-----》基本数据类型

自动装箱与自动拆箱
基本数据类型、包装类-----》String类型

String类型-----》基本数据类型、包装类

static关键字









类的加载,同时加载静态结构(属性、方法),创建对象后加载非静态结构

static练习

package Circletest;
//static关键词的应用
public class circleTest {public static void main(String[] args) {Circle c1=new Circle();Circle c2=new Circle();System.out.println(c1.getId());System.out.println(c2.getId());System.out.println(Circle.getTotal());}
}
class Circle{private double radius;//半径private int id;//构造器public Circle(){id=init++;total++;}public Circle(double radius){this();
//        id=init++;
//        total++;this.radius=radius;}private static int total;//记录圆的个数private static int init=1001;//static声明的属性被所有对象共享public double findarea(){return 3.14*radius*radius;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}public int getId() {return id;}public static int getTotal() {return total;}
}

package Account;public class Accounttest {public static void main(String[] args) {Account acct1=new Account();Account acct2=new Account("qwerty",2000);Account.setInterestrate(0.012);Account.setMinMoney(100);System.out.println(acct1.getInterestrate());System.out.println(acct1.getMinMoney());System.out.println(acct1.toString());System.out.println(acct2.toString());}
}
class Account{private int id;private String pwd="000000";//密码private double balance;private static double interestrate;private static double minMoney=1.0;private static int init=1001;//用于自动生成id//构造器public Account(){id=init++;}public Account(String pwd,double balance){id=init++;this.pwd=pwd;this.balance=balance;}public int getId() {return id;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public double getBalance() {return balance;}public static double getInterestrate() {return interestrate;}public static void setInterestrate(double interestrate) {Account.interestrate = interestrate;}public static double getMinMoney() {return minMoney;}public static void setMinMoney(double minMoney) {Account.minMoney = minMoney;}@Overridepublic String toString() {return "Account{" +"pwd='" + pwd + '\'' +", balance=" + balance +'}';}
}

单例设计模式




1.饿汉式

package singleton;
//单例设计模式就是采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例
public class singletonTest {public static void main(String[] args) {Bank bank1=Bank.getInstance();}
}
//饿汉式
class Bank{//1.私有化构造器,以避免在外部创建对象private Bank(){}//2.内部创建静态的类对象private static Bank instance=new Bank();//3.提供公共静态的方法,返回类的对象public static Bank getInstance(){return instance;}
}

2.懒汉式

package singleton;public class singletonTest2 {public static void main(String[] args) {order order1=order.getInstance();order order2=order.getInstance();System.out.println(order1==order2);}
}
//懒汉式
class order{//1.私有化构造器private order(){}//2.声明当前静态类对象,没有初始化private static order instance=null;//3.声明public、static返回当前类对象的方法public static order getInstance(){if (instance==null){instance=new order();}return instance;}
}

理解main()方法

类的内部结构3:代码块(初始化块)



package daimakuai;public class BlockTest {public static void main(String[] args) {String desc=Person.desc;//静态代码快随着类的加载而执行,只执行一次System.out.println(desc);Person p1=new Person();//非静态代码每创建一个对象就执行一次非静态代码块Person p2=new Person();}}
class Person{String name;int age;static String desc="人物画像";//构造器public Person(){}public Person(String name,int age){this.age=age;this.name=name;}//静态代码块static {System.out.println("hello,static block");desc="人才画像";}//非静态代码块{System.out.println("hello,block");eat();}//方法public void eat(){System.out.println("吃饭");}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}

final关键字




抽象类



package Abstract;public class AbstractTest {public static void main(String[] args) {//Person P1=new Person();//Person是抽象的; 无法实例化student s1=new student("ppap",18);System.out.println(s1.age);s1.walk();}
}
//抽象类
abstract class Person{String name;int age;public Person(){}public Person(String name,int age){this.age=age;this.name=name;}//抽象方法public abstract void eat();//方法public void  walk(){System.out.println("人走路");}
}
class student extends Person{public student(String name,int age){super(name,age);}//子类需要重写全部方法public void  walk(){System.out.println("人走路");}public void eat(){System.out.println("吃");}
}
package Employee;class employeetest{public static void main(String[] args) {Manager manager= new Manager("库克",1001,5000,50000);manager.work();Commnemployee commnemployee=new Commnemployee();commnemployee.work();}
}
abstract class  employee {private String name;private int id;private double salary;//构造器public employee(){}public employee(String name, int id, double salary) {this.name = name;this.id = id;this.salary = salary;}public abstract void work();
}
class Manager extends employee{private double bonus;public Manager(double bonus) {this.bonus = bonus;}public Manager(String name, int id, double salary, double bonus) {super(name, id, salary);this.bonus = bonus;}public void work(){System.out.println("管理员工,提高公司运行效率");}
}
class Commnemployee extends employee{public void work(){System.out.println("员工在一线车间");}
}

模版方法设计模式


package Test;public class TemplateTest {public static void main(String[] args) {subTemplate t=new subTemplate();t.spendtime();}
}
abstract class Template{//计算某段代码计算时间public void spendtime(){long start=System.currentTimeMillis();code();//不确定的部分(易变的部分)long end=System.currentTimeMillis();System.out.println("花费时间为:"+(end-start));}public abstract void code();
}
class subTemplate extends Template{public void code(){//一千以内的质数for (int i=2;i<=1000;i++){boolean isflag=true;for (int j=2;j<Math.sqrt(i);j++){if (i%j==0){isflag=false;break;}}if (isflag){System.out.println("是质数");}}}
}

package exe1;public abstract class Employee {private String mame;private int number;private Mydate birthday;//抽象方法public abstract double earnings();//构造器public Employee(String mame, int number, Mydate birthday) {this.mame = mame;this.number = number;this.birthday = birthday;}//get/setpublic String getMame() {return mame;}public void setMame(String mame) {this.mame = mame;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public Mydate getBirthday() {return birthday;}public void setBirthday(Mydate birthday) {this.birthday = birthday;}@Overridepublic String toString() {return"mame='" + mame + '\'' +", number=" + number +", birthday=" + birthday.toDateString();}
}
package exe1;public class SalariedEmployee extends Employee{private  double monthlysalary;//构造器public SalariedEmployee(String mame, int number, Mydate birthday) {super(mame, number, birthday);}public SalariedEmployee(String mame, int number, Mydate birthday,double monthlysalary) {super(mame, number, birthday);this.monthlysalary=monthlysalary;}public double getMonthlysalary() {return monthlysalary;}public void setMonthlysalary(double monthlysalary) {this.monthlysalary = monthlysalary;}@Overridepublic double earnings() {return monthlysalary;}@Overridepublic String toString() {return "SalariedEmployee{" +super.toString()+"}";}
}
package exe1;public class houremployee extends Employee{private int wage;//每小时工资private int hour;//月工作的小时数public houremployee(String mame, int number, Mydate birthday) {super(mame, number, birthday);}public houremployee(String mame, int number, Mydate birthday,int wage,int hour) {super(mame, number, birthday);this.wage=wage;this.hour=hour;}public int getWage() {return wage;}public void setWage(int wage) {this.wage = wage;}public int getHour() {return hour;}public void setHour(int hour) {this.hour = hour;}@Overridepublic double earnings() {return wage*hour;}@Overridepublic String toString() {return "houremployee{" +super.toString()+"}";}
}
package exe1;public class Mydate {private int year;private int month;private int day;public Mydate(int year, int month, int day) {this.year = year;this.month = month;this.day = day;}public int getYear() {return year;}public void setYear(int year) {this.year = year;}public int getMonth() {return month;}public void setMonth(int month) {this.month = month;}public int getDay() {return day;}public void setDay(int day) {this.day = day;}public String toDateString() {return "Mydate{" +"year=" + year +", month=" + month +", day=" + day +'}';}
}
package exe1;import java.util.Calendar;
import java.util.Scanner;public class PayrollSystem {public static void main(String[] args) {//获取当前月份//方式一:
//        Scanner scanner=new Scanner(System.in);
//        System.out.println("请输入当前月份:");
//        int month=scanner.nextInt();//输入当前月份//方式二:Calendar calendar=Calendar.getInstance();int month=calendar.get(Calendar.MONTH);System.out.println(month);//一月为0Employee emps[]=new Employee[2];emps[0]=new SalariedEmployee("马森",1002,new Mydate(1992,1,28),10000);emps[1]=new houremployee("张伟",2002,new Mydate(1991,2,6),60,240);System.out.println(emps[1]);for (int i=0;i<emps.length;i++){System.out.println(emps[i]);double salary= emps[i].earnings();System.out.println("月工资为:"+salary);if (month+1==emps[i].getBirthday().getMonth()){System.out.println("生日快乐,奖励100元");}}}
}

接口




package Interface;public class interfaceTest {public static void main(String[] args) {System.out.println(Flyable.MAX_SPEED);System.out.println(Flyable.MIN_SPEED);Plane P=new Plane();P.fly();}
}
//定义接口
interface Flyable{//接口中不能定义构造器,因此不可实例化
//    public Flyable(){//    }//全局常量public static final int MAX_SPEED=7900;int MIN_SPEED=1;//public static final可省略//抽象方法public abstract void fly();void stop();//public abstract可省略
}
interface Attackable{void attack();
}
//实现类
class Plane implements Flyable{@Overridepublic void fly() {System.out.println("通过引擎起飞");}@Overridepublic void stop() {System.out.println("驾驶员减速停止");}
}
class Bullet implements Flyable,Attackable{@Overridepublic void fly() {}@Overridepublic void stop() {}@Overridepublic void attack() {}
}
//****************多继承
interface AA{void method1();
}
interface BB{void method2();
}
interface CC extends AA,BB{}

接口的举例



package Interface;public class USBTest {public static void main(String[] args) {Computer com=new Computer();//1.创建了接口的非匿名实现类的非匿名对象Flash flash=new Flash();com.transferData(flash);//2.创建了接口的非匿名实现类的匿名对象com.transferData(new Flash());//3.创建了接口的匿名实现类的非匿名对象USB phone=new USB(){@Overridepublic void start() {System.out.println("手机开始工作");}@Overridepublic void stop() {System.out.println("手机结束工作");}};com.transferData(phone);//4.创建了接口的匿名实现类的匿名对象com.transferData(new USB() {@Overridepublic void start() {System.out.println("mp3开始工作");}@Overridepublic void stop() {System.out.println("mp3结束工作");}});}
}
class Computer{//方法public void transferData(USB usb){//USB flash=new Flash()多态性usb.start();System.out.println("具体传输数据的细节");usb.stop();}
}
//接口
interface USB{void start();void stop();
}
//实现类
class Flash implements USB{@Overridepublic void start() {System.out.println("U盘开始工作");}@Overridepublic void stop() {System.out.println("U盘停止工作");}
}
class Printer implements USB{@Overridepublic void start() {System.out.println("打印机开始工作");}@Overridepublic void stop() {System.out.println("打印机停止工作");}
}

接口的应用(代理模式)

package Interface;public class NetworkTest {public static void main(String[] args) {Server server=new Server();ProxyServer proxyServer = new ProxyServer(server);proxyServer.browse();}
}
interface Network{public void browse();//浏览方法
}
//被代理类
class Server implements Network{@Overridepublic void browse() {System.out.println("真实的服务器访问网络");}
}
//代理类
class ProxyServer implements Network{private Network work;//构造器public ProxyServer(Network work){this.work=work;}public void check(){System.out.println("检查完成");}@Overridepublic void browse() {check();//实现代理类的功能并且实现被代理类的功能work.browse(); }
}

接口的应用(工厂模式)






package exe1;public interface CompareObject {public int compareTo(Object O);
}
public class Circle {private double radius;public Circle(){super();}public Circle(double radius) {this.radius = radius;}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}
}
public class CompareableCircle extends Circle implements CompareObject {//构造器public CompareableCircle (double radius){super(radius);}public int compareTo(Object O){if (this==O){return 0;}if (O instanceof CompareableCircle){CompareableCircle C=(CompareableCircle)O;if (this.getRadius()>C.getRadius()){return 1;}else if (this.getRadius()<C.getRadius()){return -1;}else {return 0;}}else {return 0;}}
}
public class CompareableCircleTest {public static void main(String[] args) {CompareableCircle c1=new CompareableCircle(3.4);CompareableCircle c2=new CompareableCircle(3.6);int compare=c1.compareTo(c2);if (compare>0){System.out.println("c1大");}else if (compare<0){System.out.println("c2大");}else if (compare==0){System.out.println("一样大");}else {System.out.println("错误");}}
}

JDK8新特性

内部类




六、异常






异常处理




try-catch-finally





public class FinallyTest {public void test(){try{int a=10;int b=0;System.out.println(a/b);//异常System.out.println("我很棒1!");}catch (ArithmeticException e){e.printStackTrace();//打印异常原因}catch (Exception e){e.printStackTrace();} finally{System.out.println("我很棒2!");//声明}}
}

throws

package exe2;public class throwsTest {public static void main(String[] args) {try {test2();} catch (Exception e){e.printStackTrace();}System.out.println("异常展现完毕");}public static void test1() throws Exception {int a=10;int b=0;System.out.println(a/b);}public static void test2() throws Exception{test1();System.out.println("异常后面代码不再执行");}
}

手动抛出异常throw

package exe2;public class throwTest {public static void main(String[] args) {Student s=new Student();try {s.regist(-1001);System.out.println(s);}catch (Exception e){//            e.printStackTrace();System.out.println(e.getMessage());}}
}
class Student{private int id;public void regist(int id)throws Exception{if (id>0){this.id=id;}else {//手动抛出异常throw new Exception("您输入的数据非法");}}@Overridepublic String toString() {return "Student{" +"id=" + id +'}';}
}

用户自定义异常类

package exe2;
//如何自定义异常类?
//1.继承现有的异常结构,RuntimeException、Exception
//2.提供全局常量:serialVersionUID
//3.提供重载的构造器
public class MyException extends RuntimeException{static final long serialVersionUID = -7034897190745766939L;public MyException(){}public MyException(String msg){super(msg);}
}

package exer;
//自定义异常类
public class EcDef extends Exception{static final long serialVersionUID = -33871546387L;//定义构造器public EcDef(){}public EcDef(String msg){super(msg);}
}
public class EcmDef {public static void main(String[] args) {try{int i=Integer.parseInt(args[0]);int j=Integer.parseInt(args[1]);int result=ecm(i,j);System.out.println(result);}catch (NumberFormatException e){System.out.println("数据类型不一致");}catch (ArrayIndexOutOfBoundsException e){System.out.println("缺少命令行参数");}catch (ArithmeticException e){System.out.println("算数异常");}catch (EcDef e){System.out.println(e.getMessage());}}public static int ecm(int i,int j) throws EcDef{if (i<0||j<0){throw new EcDef("分子分母为负数了");//抛出异常}return i/j;}
}

项目三


JAVASE学习笔记(一)相关推荐

  1. 【JavaSE学习笔记】

    JavaSE学习笔记 一.java的基本语法 变量运算规则 编码情况1中l后面没有加L,默认是int变量 编码情况2中b1=b+1中的1默认是int型变量,会出错 string类型 string里面可 ...

  2. JavaSE学习笔记(持续更新)

    这里写目录标题 JavaSE学习笔记(持续更新) Java跨平台原理与核心机制 1.跨平台原理: 2.两种核心机制: JDK11的安装流程 Java程序开发的三个步骤(无编辑器版) Eclipse安装 ...

  3. 重拾JavaSE学习笔记

    重拾JavaSE学习笔记 1.常用DOS命令 2.了解Java 2.1 .java特性 2.2.JDK .JRE.JVM 2.3.java的加载和执行 3.开发环境搭建 3.1.安装jdk 3.2.配 ...

  4. javaSE学习笔记01 入门篇

    javaSE学习笔记01 入门篇 java语言概述 Java背景知识 java是 美国 sun 公司 在1995年推出的一门计算机高级编程语言. java早期称为Oak(橡树),后期改名为Java. ...

  5. 我的javaSE学习笔记

    layout: post title: "我的JAVASE自学笔记" date: 2019-05-18 20:23:25 +0800 我的JAVASE自学笔记 作者:吴甜甜 个人博 ...

  6. JavaSE学习笔记-Day1

    笔者是一名大二在读本科生,最近闲着无聊重拾起Java这门语言,看了些许教学视频后居然还觉得挺有意思,"情不知所起,一往而深".于是决心认真学习这门语言!由于身居科班,自然不是零基础 ...

  7. JavaSE学习笔记(一)基础知识

    本章包含内容有: java环境配置.注释.标识符.数据类型.类型转换.变量.常量.运算符.包机制.顺序结构.选择结构.循环结构.方法的定义和调用.命令行传参.可变参数. 点击这里查看更多JavaSE的 ...

  8. javaSE学习笔记——第十四天正则表达式、Math类、System类、Data类、Calendar类等

    javaSE学习第十四天 java知识 正则表达式的概述和简单使用 A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. 作用:比如 ...

  9. javaSE学习笔记——第四天循环结构、方法等

    javaSE学习第四天 java知识 循环结构的分类 for,while,do-while 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) {循环体;} for语句 ...

  10. 刘意JavaSE 学习笔记——总纲

    开始学习JavaSE了,记录下自己学习的进程. 学习大纲 1 开发环境配置 day01 配置 2 基础语法(基本差不多,看一下就好) day02 命名规则,进制转换 day03 运算符,if语句 da ...

最新文章

  1. 学术圈要炸锅:论文作者和审稿人串通欺骗盲审,ACM Fellow发文痛斥!顶会“想中就中”...
  2. [导入]微软研究院Detour开发包之API拦截技术
  3. xp下administrator用户登录条不显示,怎么办?
  4. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程
  5. 在WildFly上将JPA和CDI Bean与骆驼一起使用
  6. Redis持久化的原理及优化
  7. VB编PiView4注册机
  8. Java匹马行天下之 Java国出了个Java——举国欢庆
  9. 几款经典css框架下载
  10. 三方集成 - 友盟分享总结
  11. 溢出植入型木马(后门)的原型实现 作者:FLASHSKY(原创)
  12. [转]DRP系统知识点总结
  13. wps删除第二页页眉
  14. 计算机教师成绩分析总结与反思,成绩分析总结与反思
  15. Linux里怎么打开pt文件,在 Linux 上安装 transmission 进行远程 PT 下载
  16. 怎么用matlab画误差椭圆,基于MATLAB的导线网平差软件设计及误差椭圆的绘制.docx...
  17. 计算机网络之应用层图解,秒解应用层HTTP,期末考试不担心!!
  18. 用户画像是怎么生成出来的
  19. ssm:Unable to process Jar entry
  20. 【C#】winform软件UI设计模板

热门文章

  1. c语言 绘制任意斜率的直线,计算机图形学 绘制任意斜率的直线(1)
  2. 2014年IT毕业生——年终总结与生存调查报告
  3. 【Jenkins】Windows 10:Jenkins的下载和安装
  4. hisi3559av100 烧录镜像
  5. 解决vue中拿不到第一次数据,只能从第二次拿的情况
  6. 华章IT图书书讯(2012年第8期)
  7. Java基础02 面向对象
  8. supervisor 工具的使用
  9. Android 中Uri.parse()的作用
  10. 前程无忧岗位数据可视化分析报告