第一周学习笔记

目录

java基础语法

面向对象基础及三大特性


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 子类类名

多态的前提:

  1. 有继承关系
  2. 由父类引用子类
  3. 有方法重写

多态调用成员的特点:

  1. 变量调用:编译看左边,运行看左边
  2. 方法调用:编译看左边,运行看右边

多态的优势:使用父类类型作为参数,可以接收所有子类对象

多态的弊端:不能使用子类的特有功能

引用数据类型的类型转的方式:自动类型转换,强制类型转换

强制类型转换能解决的问题:可以转化成真正的子类类型,从而调用子类的特有功能


本篇文章是作者是学习笔记如有错误日后会修改

  • 21
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值