java基础

java基础复习

Java之父詹姆士,高司林,最早做Green项目

  • 使用C++来制作
  • 使用c++制作起来比较麻烦
  • 推出了Oak语言,已经被抢注了
  • 改名为java
    sun公司2009年以74亿美金卖个Oracle
    1.JAVASE是java标准版
    2.JAVAEE是java的企业版
    3.JAVAME是java微型版

 一个java程序只能有一个入口
 书写的java代码的文件后缀是.java
 运行时先编译成.class文件然后在被jvm执行
print不换行输出 println换行输出

转义字符

    \n表示换行,\"表示一个双引号,\\表示一个\
    转义字符表示一个字符

注释:

 //单行注释
    注意问题:多行注释和文档注释中不能包含多行注释
    /*多行注释*/
    /**
     文档注释
     */

数据类型:

1.浮点类型(double,float);float类型后跟字母f
2.整型(byte,short,int,long);long类型后跟字母L
3.字符(char);字符类型只能使用单引号
4.布尔类型(boolean)
面试题问String是不是基本数据类型?不是
Byte是不是基本数据类型?是

变量的运算:

  1. 加,减,乘,除,求余数(求模)
    当不同范围类型数据运算时,结果是范围最大的那个类型
  2. 自增和自减
    如果变量在前先赋值再自增,
    如果变量在后先自增再赋值
  3. 大于,大于等于(>=),小于,小于等于(<=),等于等于(==),不等于(!=)
  4. 逻辑与(&&),逻辑或(||),逻辑非(!)
  5. 三元运算符:(条件)?值1:值2
    运行流程如果条件为真返回值1,否则返回值2

字符串

对于字符串来说称为连接符;当字符串和非字符串拼接时,会自动把非字符串转换成字符串
数据类型的转换(重点)
=称为赋值运算符,把等号右边的值赋给左边;
范围小的可以直接赋值给范围大的
范围大的不能直接赋值给范围小的
如果非要把范围大的赋值给范围小的需要强制类型转换简称强转

面试题:i++和i=i+1的区别

如果i是int类型没有区别
如果是byte,short类型,使用i++时会自动类型转换

如果是byte,short类型,使用i = i + 1时需要手动类型转换

选择分支结构

  1. if语句,if…else语句,if…else if语句switch语句
    如果条件为真执行大括号中的语句
    if(score >= 60) {
    System.out.println(“及格”);
    }

循环结构

  1. for语句,while语句,do…while语句

面向对象

 对象:现实中客观存在的事物
 java中的名言:万事万物皆对象
 对象所属的分类称为“类”
 现实生活中先有对象,然后对对象进行分类
 在java中先有类,然后才有对象
 类无法直接使用,因为类是抽象的
 对象可以直接使用,因为对象是具体的
 对象 = 属性 + 方法
 类 = 属性 + 方法
学习面向对象的思路
1.如何定义类
2.定义类中的属性
3.定义类中的方法
4.如何定义对象
5.如何通过对象调用属性
6.如何通过对象调用方法
7.面向对象语言的特征:继承,多态,封装
8.java面向对象的关键字
一.如何定义类
语法格式:
public class 类名{}
类名的定义和变量的命名格式相同,首字母必须大写
1.类名只能使用字母,数字,下划线,并且不能以数字开头
2.类名不能和关键字相同
3.类名要有意义,尽量使用英文
4.如果类名有多个单词,首字母大写以后每个单词首字母也大写
public class Person {
}
二.如何定义类中的属性
变量类型 变量名;
一般情况下不赋值,除非项目需要
三、如何定义类中的方法
定义方法的格式:
public void 方法名(){语句}
方法名定义格式和变量名相同
注意问题:在同一个类中不能出现同名属性,同名同参数方法
四.如何定义对象
1)定义一个测试类命名规则TestXXX或者是XXXTest
2)书写main方法
3) 类名 对象名 = new 类名();
一个类可以创建多个对象
对象存在于堆内存中

五.如何使用对象调用属性
语法格式:对象名.属性名
六.如何调用方法
语法格式:对象名.方法名()
对于属性来说,当不赋值时会有默认值
1.整数的默认值是:0
2.小数的默认值是:0.0
3.布尔类型的默认值是:false
4.char类型的默认值是空格
5.除此之外的默认值都是null
引用数据类型的默认值都是null
局部变量和全局变量
1.局部变量:定义在方法内部的变量
使用范围:当前方法内部
2.全局变量(属性):定义在方法外部的变量
使用范围:当前类的内部

特例:如果全局变量和局部变量同名时优先使用局部变量
如果非要使用全局变量给同名局部变量添加this.
课堂练习:定义一个Girl类,必须添加show方法显示对象信息(略)

深入学习方法
1.带参数的方法
参数:完成某个功能需要的数据
语法格式:public void 方法名(参数类型1 参数名1,参数类型2 参数名2…){}
参数也是局部变量,只能当前方法内部使用
2.如何调用有参数的方法
对象名.方法名(参数值1,参数值2…)
要求参数值的个数、类型和类中方法的参数类型、参数个数保持一致
3.定义方法时的参数称为形式参数,简称形参
调用方法时的参数称为实际参数,简称实参
要求形参列表和实参列表保持一致
返回值:当完成某个功能后返回的数据
public 返回值类型 方法名(参数){语句;return语句}
void表示该方法没有返回值
表示该方法必须返回int类型的数据
public int add
如果有返回值类型的方法中有选择分支结构的语句
要求每一条分支都要有return,而且类型必须匹配
如何使用有返回值的方法
1.直接输出
注意:如果方法没有返回值则不能输出
方式二:用变量保存返回值(开发常用)
课堂练习1:定义一个方法,可以判断一个数是奇数还是偶数,并把结果返回
思路:1.考虑参数:有一个参数 2.考虑返回值类型:String类型
课堂练习2:定义一个方法,判断是否成功登陆的方法,参数有用户名和密码
如果用户名是admin,密码是abc123返回登陆成功,否则返回登陆失败
思路:1.有两个String类型的参数 2.返回值类型也是String类型
return的注意事项
1.在java中,一个return只能返回一个值
以下写法都是错误的
public int add(int a, int b){
return a + b,a * b;
return a - b;
}
2return除了返回值以外,还有结束方法的作用,其后不能跟任何代码
3. 在有void方法中也可以使用return,只表示方法结束,其后不能跟任何值
方法的重载(Overload)
在同一个类中,方法名相同,参数个数或者参数类型不同
,我们把这种现象就称为方法的重载
调用时可以通过开发工具选择对应的方法
重载的应用场景
println方法是一个重载的方法,可以按住ctrl,通过鼠标左键点击观察
课后练习:
1.定义一个ClassRoom类,要求有班级名称,班级人数,实到人数,必须定义show方法,显示班级信息,定义一个统计迟到人数的方法,要求至少创建两个对象,并测试
2.定一个圆类,定义一个方法,计算圆的面积和周长
3.定义一个学生类,要求有学号,姓名,年龄,所在班级,必须定义show方法、显示学生信息,定义一个成绩的方法,可以统计三门成绩的总和和平均成绩,定义一个重载的方法,可以统计四门成绩的总和和平均成绩
构造方法
在创建一个类时,默认会自动生成 public 类名(){}
我们把以上代码就称为构造方法
完整构造方法格式
public 类名(参数){语句}
如果程序员指定了构造方法,就不会自动生成
默认的构造方法
构造方法也可以重载
如果程序员指定了有参数的构造方法
那么创建对象时必须传递参数,否则报错
构造方法只能是创建对象时被调用
每创建一次对象就会调用一次构造方法
构造方法的作用

  1. 完成初始化工作
  2. 构造方法作用二:给属性初始化,从而简化代码
    第一步有几个属性就写几个参数,参数名和属性名保持一致
    public Book(String name, int page, float price){
    第二步给属性赋值
    = 表示赋值,把等号右边的值赋值给等号左边
    把参数值赋值给属性

课堂练习:定义一个手机类,有名称,颜色,价格,屏幕尺寸,重量,
要求通过构造方法给属性初始化,要求通过show方法显示手机对象的信息
创建两个对象并测试
课后练习:
1.定义一个老师类,有工号,姓名,性别,年龄,工资,补助
通过构造方法给老师对象属性赋值,通过show方法显示老师的信息
2.定义一个汽车类,有品牌,颜色,价格,座位数,重量要求定义三个构造方法,第一个构造方法是默认构造方法,第二个构造方法只需要给品牌和颜色赋值,第三个构造方法要求给所有属性赋值
通过show方法显示汽车的信息
生成构造方法的快捷键
idea的快捷键:alt + insert->constructor然后选择给哪些属性赋值
eclipse的快捷键alt + shift + s->松手按c会生成无参构造方法
eclipse的快捷键alt + shift + s->松手按o会生成有参构造方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值