JAVA编程课件

JAVA编程基础

程序的意义
数据
存储数据 内存 变量 大小
处理数据 CPU 命令 快慢

数据种类

数字:整数、小数
布尔值:true、false
字符串:几乎所有的内容都是字符串

存数据的变量类型

整数:int
小数:double
布尔值:boolean
字符串:String

如何把一个数据存起来

申明变量类型:分配内存
取变量名:记录内存位置
用=:往变量指向的内存放数据,专业名词:赋值符
数据:要存储的事情
“;”:命令行结束

如何把一个数据存起来

int age=18
double money=8888.88
String company=”上海果芽软件科技有限公司”;
String type=”RMB”;
密码:String password=”123456”;
String pwd=”123456”;
订单金额:double amount=99.99;
点灯是否开着:boolean isLight=true;

如何存一批数据

1个变量(基本数据类型):存1个数据
多个变量(引用变量类型):容器

容器种类

数组Array:个数固定、数据含义相同、单个值
链表ArrayList:动态增加、数据含义相同、单个值
HashSet:动态增加、数据含义相同、单个值、自动去重
HashMap:个数变化、数据含义不同、数据需要给含义,一对一对的数据,键值对/key=value
JavaBean:个数固定、数据含义不同、数据需要给含义,一对一对的数据,键值对

数据的操作

增、删、改、查、统计
变量的增删改查统计
界面功能的增删改查统计:支付、学生信息、面试信息
组织一次活动的增删改查统计:聚餐

单个变量的增删改查统计

增:int age=18;
删:方法执行结束,系统会自动回收内存
// int age = 18;
/* int age = 18; */
改:age=38;
查/取:age

数组的增删改查统计11

新建容器:int[] ages=new int[30];
增:下标 ages[0]=18; ages[8]=28; ages[29]=38; ages[30]=48;
删:ages[8]=null;
改:ages[29]=20;
查/取:ages[8]
统计:ages.length返回数组大小
int[] scores={100,10,60,79};
等价
int[] scores=new int[4];
scores[0]=100;
scores[1]=10;

ArrayList的新建/增/删/改/查/统计

新建容器:List<int> ages=new ArrayList<int>();
List:接口,定义实现类要写什么内容
ArrayList:实现类
<>:泛型
():构造方法
增:ages.add(18); ages.add(28);
删:
改:
查/取:ages.get(2); ages.get(4);
统计:ages.size();返回大小

报错/异常日志

image.png

HashSet的新建/增/删/改/查/统计

新建容器:Set<Integer> ages=new HashSet<Integer>();
Set:接口,定义实现类要写什么内容
HashSet:实现类
<>:泛型
():构造方法
增:ages.add(18); ages.add(28);
删:
改:
查/取:
统计:ages.size();返回大小

HashMap的新建/增/删/改/查/统计

新建容器:Map<String,String> phones=new HashMap<String,String>();
Map:接口,定义实现类要写什么内容
HashMap:实现类
<>:泛型
():构造方法
增:phones.put("王慧硕", "1232321231");
删:
改:phones.put("王慧硕", "8765432123");
查/取:phones.get("王慧硕")
统计:phones.size();返回大小

main方法:编写

main

alt+/

enter ******* public static void main(String[] args) {

}

syso

alt+/ ******** System.out.println("测试");
enter


image.png

main方法:执行方式1

image.png

main方法:执行方式2

image.png

image.png

main方法:作业提交截图样例

image.png

变量和容器练习

使用变量和不同的容器,存储登录界面的数据。
用户名:userName
密码:password
校验码:checkCode


image.png

变量和容器练习:流程

  1. 每个练习选一个人上台直播写,下边说,上边写

  2. 所有练习学生轮流直播写一轮后,开始正式全员动手写

  3. 演示截图样例

  4. 使用上传总结界面,每道题全部通过后,进行下一道题,先做完的辅导分派到其它组进行指导

  5. 全员动手写一遍后,复习动口一轮

  6. 再选人直播写一遍

变量和容器练习:使用变量存储

    String userName= "lilei";
    String password="123466";
    String checkCode="1234";

变量和容器练习:使用数组存储

    String[] datas=new String[3];
    datas[0]="李磊";
    datas[1]="123466";
    datas[2]="1234";

变量和容器练习:使用ArrayList存储

    List<String> list = new ArrayList<String>();
    list.add("lilei");
    list.add("123456");
    list.add("1234");

变量和容器练习:使用HashMap存储

    Map<String, String> map = new HashMap<String,String>();
    map.put("userName", "lilei");
    map.put("password", "123466");

类和JavaBean新建类

  1. 类名:首字母大写,驼峰命名法


    image.png

    image.png

工程结构:java三大特性之一:封装

  1. project工程

  2. package包

    包名
    “.”
    查看文件夹路径

  3. class类
    .java后缀:源文件
    .class后缀:源文件编译后的文件

  4. field字段

  5. method方法


    image.png

方法的结构

  1. 权限:public/private

  2. 返回值类型:void不返回

  3. 方法名method

  4. ()参数列表

  5. 入参类型 入参变量名

  6. {}方法体

为什么返回只需要写类型,
但是入参需要些类型
和变量名?
public void test(){
System.out.println("test");
}

public void sayHello(String name){
System.out.println("hello");
}

public String answer(String question){
return "答案";
}

public String answer(String question,int a){
return "答案";
}

类的作用

打包封装:字段和方法

方法的作用

打包封装:命令

main方法的作用

代表一个程序:

1个程序只有一个main方法

所有代码可以全部写在一个main方法里面

不在main方法里面的内容不会执行

main方法的命令可以封装成方法打包调用

Main方法的内容

快捷写法:
main
alt+/
enter

  1. 手工写
    public static void main(String[] args){

    }
    权限:public
    静态的static
    返回值类型:void
    方法名:main
    参数列表()
    入参是一个数组:String[] args
    方法体:{}

程序只会执行main方法里面的内容. 其他方法要想被执行,只能加到main方法里面

方法的作用:封装(重构)--高手必经之路(把屎一样的代码写得像诗一样)

image.png

image.png

一个程序最少的构成元素

1个工程

1个包

1个类

1个main方法
把1个main方法的命令拆分封装成很多个可复用的方法

把1个类拆分封装成很多个子类

把1个包里的很多个类拆分封装成很多个子包

把1个工程里的很多业务拆分成很多个子工程

把1个公司的业务拆分成很多个专项子公司

从无到有
从有到优

人无我有
人有我优
人优我转

封装的目的

代码简单
复用


image.png

image.png

用main方法实现加法运算

  1. 变量可以复用
  2. 加法和打印命令重复了好多次


    image.png

对重复代码进行重构(封装)

image.png

image.png

image.png

“+”运算符

数字+数字: 1+2=3
字符串+字符串: “abc”+”def”=“abcdef”
数字+字符串: 231+”def”=“231def”
字符串+变量: int a=231; ”def”+ c =“def231”

算术运算符:取余

有一批学生,从学号1开始报数,每4个唱首歌

用1个变量存放学号
int no=0;

no=1;

if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

no=2;
if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

算术运算符:自增

有一批学生,从学号1开始报数,每4个唱首歌

用1个变量存放学号
int no=0;

no++;

if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

no++;
if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

赋值运算符

= int a=1 a=1
+= a+2=2 a=a+2;a=3
-= a-=3 a=a-3;a=0
*= a*=3 a=a*3;a=0
/=
%= a=7;a%=3 a=a%3;a=1

逻辑运算符

&& int a=5; a>3 && a<10; true a>6 && a<10; false
int a=5; a>6 a<10; true
! int a=5; int b=6; a!=6 true
boolean result = 2==3 1==1;

boolean result ;
2==3 false
1==1 true
false || true result=true

条件运算符

variable x = (expression) ? value if true : value if false
int a = (age <= 18) ? 少年: 大叔;
int a = (sex == 0 ) ? 美女 : 野兽;

分支结构

媳妇让你去买6个包子,如果看到西瓜,买一个。

最后只买了1个包子

分支结构:if 语句

if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
public static void main(String args[]){
int x = 10;

  if( x < 20 ){
     System.out.print("这是 if 语句");
  }

}

分支结构:if...else语句

if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
public static void main(String args[]){
int x = 30;

  if( x < 20 ){
     System.out.print("这是 if 语句");
  }else{
     System.out.print("这是 else 语句");
  }

}

分支结构:if...else if...else 语句

if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}
public static void main(String[] args){
int x = 30;

  if( x == 10 ){
     System.out.print("Value of X is 10");
  }else if( x == 20 ){
     System.out.print("Value of X is 20");
  }else if( x == 30 ){
     System.out.print("Value of X is 30");
  }else{
     System.out.print("这是 else 语句");
  }

}

分支结构:嵌套的 if…else 语句

if(布尔表达式 1){
////如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
////如果布尔表达式 2的值为true执行代码
}
}
public class Test {

public static void main(String[] args){
int x = 30;
int y = 10;

  if( x == 30 ){
     if( y == 10 ){
         System.out.print("X = 30 and Y = 10");
      }
   }
}

}

循环结构 for循环

int i=0;

if(i<30){
System.out.println(“唱歌”);
i++;
}

if(i<30){
System.out.println(“唱歌”);
i++;
}

if(i<30){
System.out.println(“唱歌”);
i++;
}


for(int i=0;i<30;i++){
System.out.println(“唱歌”);
}
for:for循环控制器

():循环的条件

int i=0:初始值

i<30:最大值

i++:增量为1(i+=2:增量为2)

{}:要循环执行的命令

循环结构:while 循环

while( 布尔表达式 ) {
//循环内容
}


while可以替换for循环

但是for循环不能完全替换while循环


public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}

循环结构:break关键字

break; 终断
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ) {
     // x 等于 30 时跳出循环
     if( x == 30 ) {
        break;
     }
     System.out.print( x );
     System.out.print("\n");
  }

}

循环结构:continue关键字

continue; 当前的结束,继续下一个
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ) {
     if( x == 30 ) {
    continue;
     }
     System.out.print( x );
     System.out.print("\n");
  }

}

循环结构:增强 for 循环

for(声明语句 : 表达式)
{
//代码句子
}
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ){
     System.out.print( x );
     System.out.print(",");
  }
  System.out.print("\n");
  String [] names ={"James", "Larry", "Tom", "Lacy"};
  for( String name : names ) {
     System.out.print( name );
     System.out.print(",");
  }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,292评论 18 399
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,241评论 0 19