目录
java基础语法
java是一个面向对象的语言,万物皆对象。
注释
解释说明自己的代码,不会被执行。
-
单行注释: //
-
多行注释: /* */
标识符
java对变量,方法,类等要素命名。
标识符的规则:
-
标识符由英文字母、0-9、$_组成。
-
不能以数字开头。
-
不能用关键字和保留字,但可以包含关键字和保留字。
-
java严格区分大小写,不限制长度。
-
不能包含空格。
标识符的命名规范:
-
包名:所有字母都是小写 例xxxyyyzzz。
-
类名:驼峰命名法 多单词组成的所有单词首字母大写 XxxYyyZzz。
-
方法名:首字母小写 xxxYyyZzz。
-
常量名:多个单词用_连接 所有字母大写。XXX_YYY_ZZZ.
-
见名之意。(注意)
数据类型
基本数据类型:
-
整数 byte 1 short 2 int(默认) 4 long 8
-
浮点数 float 4 double (默认) 8
-
字符 char 2
-
布尔值 boolean 1
引用数据类型:
-
类
-
接口
-
数组
类型转换 :
自动类型转换 - 低转高
强制类型转换 - 高转低 (低)高
运算符
-
算术运算符 +、-、*、/、%、++、--
-
赋值运算符 =
-
关系运算符 > < >= <= = = != instance of
-
逻辑运算符 && || !
-
位运算符 & | ^ ~ >> << >>>
-
条件运算符 ? :
-
扩展运算符+=、-= 、*=、/=
包的机制 :域名倒着写 防止命名冲突。、
例:自增与自减
package com.dq; public class Test { public static void main(String[] args) { int a = 2; int b = 3; System.out.println( a++);//2 System.out.println( ++b);//4 } }
例:三元运算符
类
什么是类?
类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。
类的声明
public class className {……}
包
1.什么是包?
区别类名的命名空间,更好的组织类。
2.包的作用?
功能相似的类或接口组织在同一个包中,方便查找和使用。
3 .java 包的作用域
-
public:可以被任何类使用。
-
private:只能被定义它的类使用。
-
protected:可以被自己、同一包下的其它类,子类使用。
流程控制
Scanner (用户交互)
如何使用Scanner类
1、首先导入java.util.Scanner包;
import java.util.Scanner;
2、创建Scanner类对象
Scanner sc = new Scanner(System.in);
3、创建一个变量来接收输入的数据
int a = sc.nextInt(); float b = sc.nextFloat(); double c =sc.nextDouble(); String d = sc.nextLine();
4、关闭Scanner类
sc.close();
5、例子
流程结构
顺序结构 程序默认自上而下执行
选择结构 if单选择结构 if-else 双选择结构 多选择结构 switch jdk7支持了String类型 default
循环结构
-
for
-
while
-
do...while
-
增强for循环
-
九九乘法表
break 与continue
break:跳出循环
continue:终止当次循环
return :结束方法的运行
方法
什么是方法?
方法,也称函数,如果想要重复一段或者多段代码块的使用,可以将这些代码封装成一个方法,方法具体表现为某种行为,使用方法可以提高代码的复用性。
方法的声明
/*访问权限符 返回值 方法名(参数列表){ 方法体 }*/ 例: public void method(){ System.out.print("这是一个方法"); }
返回值
表示方法(函数)要返回的数据类型,int ,double,String等等·,void表示无返回值。
方法名
方法的名称,避免使用到java关键字,并且首字母小写,命名时使用驼峰命名法。
参数列表
(1)形参
也叫形式参数,方法声明时候的参数称为形参,如add(int a)。
(2)实参
也叫实际参数,方法调用时传入的参数,如add(1)。
方法的声明与调用
面向对象的基本特征
-
封装:封装就是使对象以外的部分不能随意的访问和操作对象的内部属性。
-
继承:子类的对象拥有父类的全部属性和方法。注意:父类可以拥有多个子类,但子类只能有一个父类,被称为单继承。
-
多态:对象的多态性是指在父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。
-
重载:方法重载是让类以统一的方式处理不同数据类型的手段。
-
重写:子类对父类的方法进行重新编写。如果在子类中的方法与其父类有相同的的方法名、返回类型和参数表,我们说该方法被重写 (Overriding),子类可以通过super调用父类的方法。
封装的代码示例:
package com.dq01; public class Student { //将 id、name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。 private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
继承的代码示例:
控制台输出:学习
重载代码示例:
public static int add(int a, int b){ //修饰符 返回值 名字 return a+b; } public static int add(int a, int b,int c){ //这里是改变参数列表的个数达到方法重载↑ //修饰符 返回值 名字 return a+b; }
重写代码示例:
//父类 public class People{ public void say(){ System.out.println("Hello World!"); } } //子类 public class men extends People{ public void say(){ super.say(); //在原来的基础上添加新的功能 System.out.println("我能把Java学好吗?"); } } //main函数 public static void main(String[] args){ men man = new men(); man.say(); } 输出结果: Hello World! 我能把Java学好吗?
方法重写注意事项、要求
-
重写方法的名称、形参列表必须与被重写方法的名称和参数列表一致。
-
私有方法不能被重写。
-
子类重写父类方法时,访问权限必须大于或者等于父类(缺省<protected <public)
-
子类不能重写父类的静态方法,如果重写会报错的
多态的代码示例:
多态的前提条件:1.满足继承
2.要有方法的重写
3.父类引用指向子类对象
4.多态中,编译看左边,运行看右边
(1)定义父类Person类
package com.oop.duotai; /** * @FileName com.oop.duotai.Person * @Description: * @Author DQ * @Date 2023/5/16:19:32 * @Version V1.0 **/ public class Person { public void sleep(){ System.out.println("所有人都会睡觉"); } }
(2)定义子类Teacher类
package com.oop.duotai; /** * @FileName com.oop.duotai.Teacher * @Description: * @Author DQ * @Date 2023/5/16:19:35 * @Version V1.0 **/ public class Teacher extends Person{ @Override public void sleep() { super.sleep(); System.out.println("老师也要睡觉"); } }
(3)定义子类Student类
package com.oop.duotai; /** * @FileName com.oop.duotai.Student * @Description: * @Author DQ * @Date 2023/5/16:19:38 * @Version V1.0 **/ public class Student extends Person{ @Override public void sleep() { super.sleep(); System.out.println("我们学生睡觉最好满足8小时睡眠"); } }
(4)
package com.oop.duotai; /** * @FileName com.oop.duotai.Test001 * @Description: * @Author DQ * @Date 2023/5/16:19:41 * @Version V1.0 **/ public class Test001 { public static void main(String[] args) { Person dq = new Student(); dq.sleep(); Person teacher = new Teacher(); teacher.sleep(); } } 运行结果: 所有人都会睡觉 我们学生睡觉最好满足8小时睡眠 所有人都会睡觉 老师也要睡觉