java基础_面向对象基础

目录

一、面向对象编程

1.类和对象的一些注意事项

2.this关键字

3.构造器

4.封装

5.实体类JavaBean

6.全局变量和局部变量

7.常用的API

1.String包

1.String包的创建

2.String 提供的方法

3.String注意事项

2.ArrayList集合


一、面向对象编程

先来创建一个实例来感受一下!

public class Student {
    public String name;
    public double chinese;
    public double math;
​
    public void printSum(){
        System.out.println(name+"的总成绩是:"+(chinese+math));
    }
​
    public  void printavg(){
        System.out.println(name+"的平均成绩"+(chinese+math)/2.0);
    }
}
public class text {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "wwl";
        s1.chinese = 100.0;
        s1.math = 100.0;
        s1.printSum();
        s1.printavg();
    }
​
}

1.类和对象的一些注意事项

目标:掌握类与对象的一些注意事项。

1、类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义,比如:Student、Car 2、类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)。

3、成员变量本身存在默认值,同学们在定义成员变量时一般来说不需要赋初始值(没有意义)。

4、一个代码文件中,可以写多个class类,但只能一个用public修饰,且public修饰的类名必须成为代码文件名。

5、对象与对象之间的数据不会相互影响,但多个变量指向同一个对象时就会相互影响了. 6、如果某个对象没有一个变量引用它,则该对象无法被操作了,该对象会成为所谓的垃圾对象。

2.this关键字

this是一个变量。可以用在方法中,拿到当前对象

this有啥应用场景呢? this主要用来解决:变量名称冲突问题的。

public class Student {
    public String name;
    public double chinese;
    public double math;
​
    public void printthis(double chinese){
        if(this.chinese > chinese){
            System.out.println("优秀");
        }
    }
​
}
public class text {
    public static void main(String[] args) {
​
        Student s2 = new Student();
        s2.chinese = 96;
        s2.printthis(90);
    }
​
}
​

3.构造器

构造器是什么样子?

public class Student{
​
    public Student(){
        System.out.println("无参构造器触发");
    }
    public Student(String name,int age){
        System.out.println("有参构造器触发");
    }
}
public class Test{
    public static void main(String[] args) {
​
        Student s2 = new Student();
        Student s3 = new Student("wwl",19);
    }
}

构造器有什么特点? 创建对象时,对象会去调用构造器。· 创建对象时,同时完成对对象成员变量(属性) 的初始化赋值。 构造器的注意事项

1.类在设计时,如果不写构造器,Java是会为类自动生成一个无参构造器的。

2.一旦定义了有参数构造器,Java就不会帮我们的类自动生成无参构造器了,此时就建议自己手写一个无参数构造器出来了。

4.封装

什么是封装?

就是用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。

封装设计规范:合理隐藏,合理暴露

public 公开 类外可以访问

private 私有 类外不可以访问

5.实体类JavaBean

什么是实体类?

●就是一种特殊形式的类。

01.这个类中的成员变量都要私有,并且要对 外提供相应的getXxx,setXxx方法

02.类中必须要有一个公共的 无参的构造器。

package src.javase.day06.javabean;
​
public class Student {
    private String name;
    private int age;
​
    public Student() {
    }
​
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public int getAge() {
        return age;
    }
​
    public void setAge(int age) {
        this.age = age;
    }
}
package src.javase.day06.javabean;
​
import src.javase.day06.javabean.Student;
​
public class Test {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("wwl");
        System.out.println("s1.name = " + s1.getName());
        
        Studentoperator s2 = new Studentoperator(s1);
        s2.printpass();
    }
}

2.实体类有啥应用场景?

实体类对应的是软件开发里现在比较流行的开发方式,数据和数据的业务处理相分离

package src.javase.day06.javabean;
​
public class Studentoperator {
    private Student student;
​
    public Studentoperator(Student student) {
        this.student = student;
    }
​
    public void printpass() {
        if (student.getAge() >= 60) {
            System.out.println("通过");
        } else {
            System.out.println("不通过");
        }
    }
}
​

6.全局变量和局部变量

目标:搞清楚成员变量和局部变量的区别,

1、类中位置不同:成员变量(类中,方法外)、局部变量(常见于方法中)

2、初始化值不同:成员变量(有默认值,不需要初始化赋值),局部变量(没有默认值,使用之前必须完成赋值)

3、内存位置不同:成员变量(存在于堆内存),局部变量(栈内存)

4、作用域不同:成员变量(整个对象),局部变量(在所归属的大括号中)

5、生命周期不同:成员变量(与对象同生共死),局部变量(方法调用而生,方法结束而亡)

7.常用的API

什么是包?
包是用来分门别类的管理各种不同程序的,类似于文件夹,建包有利于程序的管理和维护。
建包的语法格式:

package **.**.**;
public class Student

在自己程序中调用其他包下的程序的注意事项

  • 如果当前程序中,要调用自己所在包下的其他程序,可以直接调用。(同一个包下的类,互相可以直接调用)
  • 如果当前程序中,要调用其他包下的程序,则必须在当前程序中导包,才可以访问!导包格式:import包名类名;
  • 如果当前程序中,要调用ava提供的程序,也需要先导包才可以使用;但是ava.lang包下的程序是不需要我们导包的,可以直接使用。
  • 如果当前程序中,要调用多个不同包下的程序,而这些程序名正好一样,此时默认只能导入一个程序,另一个程序必须带包名访问。

1.String包

1.String包的创建
public class StringDemo01 {
    public static void main(String[] args) {
        //采用直接双引号得到字符串对象
        String name = "wwl";
        System.out.println(name);

        //采用创建一个对象得到字符串
        String rs1 = new String("wwl1");
        System.out.println(rs1);

        //创建一个字符数组
        char[] chars = {'你','好','呀'};
        String rs2 = new String(chars);
        System.out.println(rs2);

        //创建一个字节的数组,来创建字符串对象
        byte[] bytes = {99,98,97};
        String rs3 = new String(bytes);
        System.out.println(rs3);

    }

}

/*
wwl
wwl1
你好呀
cba
*/
2.String 提供的方法

public class StringDemo2 {
    public static void main(String[] args) {
        String str1 = "java是最好的语言之一";
        //length()统计字符串长度
        System.out.println(str1.length());
        //获取字符串某个索引位置的字符charAt(5)

        System.out.println(str1.charAt(5));
        //将当前字符串转换成字符数组toCharArray()
        char[] chars = str1.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }
        //判断字符串是否一样,一样就返回true
        String str2 = "java是世界上最好的语言之一";
        System.out.println(str1.equals(str2));

        //判断两个字符串内容是否一样,忽略大小写
        System.out.println(str1.equalsIgnoreCase(str2));
        //截取字符串内容
        String str3 = str1.substring(1,3);
        System.out.println(str3);
        String str4 = str1.substring(1);
        System.out.println(str4);
        //使用新值,将字符串中的旧值替换
        String str5 = str1.replace("java","***");
        System.out.println(str5);
        //判断是否有这个字符串
        boolean java = str1.contains("java");
        System.out.println(java);
        //是否以某一字符串开头
        boolean java1 = str1.startsWith("java");
        System.out.println(java1);
        //以什么为间隔符,拆分
        String str6 = "zn,wwl,ljh,wwc";
        String[] split = str6.split(",");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }
    }
}

/*
12
最
j
a
v
a
是
最
好
的
语
言
之
一
false
false
av
ava是最好的语言之一
***是最好的语言之一
true
true
zn
wwl
ljh
wwc
*/
3.String注意事项

1、String有哪几点注意事项?

  • String是不可变字符串对象
  • 只要是以“..”(双引号)方式写出的字符串对象,会存储到字符串常量池,且相同内容的字符串只存储一份;
  • 但通过new方式创建字符串对象,每new一次都会产生一个新的对象放在堆内存中。

1、字符串的比较使用=比较好吗?为什么?什么时候使用==?
        不好,对于字符串对象的比较,=比较的是地址,容易出业务bug
        基本数据类型的变量或者值应该使用=比较。
2、开发中比较字符串推荐使用什么方式比较?
        使用String提供的equals方法,它只关心字符串内容一样就返回true。
 

public boolean equals (object anobject)
public boolean equalsIgnorecase (String anotherstring)

2.ArrayList集合

import java.util.ArrayList;

public class ArrayLIstDemo01 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        //相机何种加入元素
        list.add("wwl");
        list.add("zn");
        list.add("good");
        System.out.println(list);
        //向指定位置加入元素
        list.add(1,"first");
        System.out.println(list);
        //返回指定位置处的元素list.get(1)
        System.out.println(list.get(1));
        //返回集合中元素的个数
        System.out.println(list.size());
        //删除指定索引处的元素,并返回被删除元素
        System.out.println(list.remove(1));
        //删除指定元素,返回是否成功
        System.out.println(list.remove("wwl"));
        System.out.println(list);
        //修改索引处的值,并返回原来的旧值
        System.out.println(list.set(2,"very"));
        System.out.println(list);

    }

}

/*
[wwl, zn, good]
[wwl, first, zn, good]
first
4
first
true
[zn, good]
*/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值