目录
java基础语法
1:数据的读入与输出
import java.util.Scanner;//导入Java中的Scanner类,用于从控制台读取输入。
public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);//创建Scanner对象
int x = sc.nextInt();//读入下一个整数
System.out.printf("%d",x);//输出整数
}
}
2:数组
public class Main {
public static void main(String[] args){
//创建数组的方式
int[] a = {0,1,2};
int[] b = new int[3];
//访问数组通过下标
System.out.printf("%d %d %d\n", a[0], a[1], a[2]);
}
}
3:判断语句
class Main{
public static void main(String[] args)
{
int st=1;
if(st==1)
{
System.out.printf("yes");
}
else
{
System.out.printf("no");
}
}
}
4:循环
public class Main {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
System.out.println(i);
i ++ ;
}
}
}
面向对象基础及三大特性
基础:类与对象
类定义一种全新的数据类型,包含一组变量和函数;对象是类这种类型对应的实例。
例如在一间教室中,可以将Student定义成类,表示“学生”这个抽象的概念。那么每个同学就是Student类的一个对象。
类的一些基本概念
1:修饰符
public: 所有对象均可以访问
private: 只有本类内部可以访问 ,用来修饰成员变量通常需要set和get来获取和调用成员变量
static:本类的所有对象共有的,即使不创建对象也能通过类调用.
---被stati修饰的成员变量叫静态变量
------特点:
------------被该类的所有对象共享
------------不属于对象属于类
------------随着类的加载而加载,优先于对象存在
------调用方式:
------------类名调用(推荐)
------------对象名调用
---被static修饰的成员方法,叫静态方法
------特点:
------------多用与测试类和工具类
------------javabean类中会很少用
--------调用方法
2:
javabean类:封装对象的标准,描述一类事物
测试类:用于检测其他类是否书写正确,带有main方法的类, 是程序的入口
工具类:成员方法一般用static修饰,帮我们做一些事情但是不描述任何事物
3:
this:指向对象的成员变量/方法
super:指向父类对象的成员变量/方法
4:
一个源文件中只能有一个public类。
一个源文件可以有多个非public类。
源文件的名称应该和public类的类名保持一致
1:封装
概念:对象代表什么就封装对应的数据,并提供数据对应的行为.
对成员变量用private修饰并且提供set和get方法.
构造方法要和类名相同,大小写也要一致,没有返回值类型
构造方法有无参构造和带参构造
如果自己不写构造方法java虚拟机会给我们加一个空参构造函数
有参和无参构造方法名相同但是参数不同这是构造方法的重载
推荐把无参和有参都写出来
类中变量调用的原则是就近原则
标准的javabean类
1;类名需要见名知意
2:成员变量使用private修饰
3:构造方式上:至少提供无参构造和全参构造
4:成员方法上:对每个成员变量提供对应的set和get方法
可以用快捷键alt+insert快速创建构造方法和set/get方法,也有下载插件ptg的方式快速构造但是我不会连外网没使用成功
public class Person {
//成员变量
private String password;
private String username;
private String email;
private String gender;
private int age;
public Person() {
}
public Person(String password, String username, String email, String gender, int age) {
this.password = password;
this.username = username;
this.email = email;
this.gender = gender;
this.age = age;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2:继承
java提供关键字extends让一个类和另一个类建立起继承关系//java里所有类直接过继承object类
public 子类 extends 父类 {}
特点:
可以把多个子类中的重复代码抽取到父类中,提高代码的复用性
子类可以在父类的基础上,增加其他的功能,使子类更强大
什么时候使用继承:
当类与类之间,存在相互共同的内容,并且满足子类是父类中的一类,就可以考虑继承来优化代码.
java只支持单继承(一个子类只能继承一个父类)但支持多层继承.
public class Animal {
public void eat(){
System.out.println("吃东西");
}
public void drink(){
System.out.println("喝水");
}
}
public class Cat extends Animal{
public void catchMouse(){
System.out.println("抓老鼠");
}
}
public class Dog {
public void lookHome(){
System.out.println("看家");
}
}
方法的重写
当父类的方法不能满足子类现在的需求时,需要进行方法重写
书写格式
在继承体系中,子类出现了和父类中的一摸一样的方法声明,我们就称子类这个方法是重写的方法
@Override重写注解
@Override是放在重写后的方法上,检查子类重写时语法是否正确
重写方法的名称,形参列表必须与父类中的一致
父类的私有成员子类也不能调用
继承中构造方法访问的特点
父类的构造方法不会被子类继承
子类中所有的构造方法默认先访问父类中的无参构造,再执行自己
怎么调用父类构造方法的:
子类构造方法的第一行语句默认都是:super(),不写也存在,且必须在第一行
如果想调用父类的有参构造,必须手动写super进行调用
原因是
子类在初始化的时候,有可能使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据
子类初始化之前,一定要调用父类构造方法先完成父类数据空间的初始化
3:多态
同类型对象表现出不同的形态
多态的表现形式
父类类名 对象名称 = new 子类类名
多态的前提:
- 有继承关系
- 由父类引用子类
- 有方法重写
多态调用成员的特点:
- 变量调用:编译看左边,运行看左边
- 方法调用:编译看左边,运行看右边
多态的优势:使用父类类型作为参数,可以接收所有子类对象
多态的弊端:不能使用子类的特有功能
引用数据类型的类型转的方式:自动类型转换,强制类型转换
强制类型转换能解决的问题:可以转化成真正的子类类型,从而调用子类的特有功能
本篇文章是作者是学习笔记如有错误日后会修改