| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> JAVA学习基础篇-2 -> 正文阅读 |
|
[Java知识库]JAVA学习基础篇-2 |
一、String类 1、next() 和 nextLine() 的区别:? next() 当遇到空格或回车时结束输入不存储空格。 2、String 的构造方法:字符数组构造? ? ? ?例如: char[] chs = {'1','4','5'}; String str = new String(chs); String str1 = new String(chs); System.out.println(str1 == str); // == 比较的是地址 false System.out.println(str.equals(str1)); // Object.equals(Object) 比较的是值 true; 3、String 类单个输出每个字符:? str.charAt(i);? ? str += str1字符的拼接。 4、String 和 StringBuilder : ? ?a、String 内容不可变:当定义一个字符串时会在字符流(忘了叫什么了)中?创建这个字符串,当需要这个字符串后面拼接一个字符串时,由于字符流中没有这个新的字符串,需要在字符流中创建它,然后拼接 形成一个新的字符串,新字符串有需要在字符流中创建,过于麻烦。 ? ?StringBuilder内容可变:参照上面的内容不可变 b、StringBuilder类 (注意不能直接与String 相互存储):由于它的内容可变和一些方法 好用。不过最好达到目的后转为String 类型 ? ?c、StringBuilder类型字符添加字符:str.append(val)? val可为字符串也可为其他(暂时没有深入-等后续),返回本身所以可以练级添加:str.append(val).append(val).append(val); ? ?反转:反转字符串 返回本身 ; d、相互转化: StringBuilder --> String:? ? str.toString();? 返回String型 。 String --> StringBuilder :? 只能(这里还是留个余地吧)通过构造方法转换:StringBuilder str = new StringBuilder(str1) ;? (这里的str1是String类型)。 二、继承? (extends) 前提:子类:Zi? 父类:Fu 1、格式:public static class Fu{}? ?public static class Zi extends Fu{} 2、优缺点: 优点:增强了代码的复用性,对于多个类中相同的成员放到一个类中 增强了代码的维护性,只要改了父类中的成员 子类中也会改 缺点:减弱了子类的独立性 子类方法访问变量时,遵循就近原则:局部变量(方法中的变量) > 子类成员变量 > 父类成员变量。 3、访问 ? ? a、对于父类,子类,子类方法中都存在同名的变量时, 在子类的方法中访问子类成员变量的同名变量时:this.age 访问父类中的成员变量时用super 代表父类 当然只在继承子类中使用:super.age; (当然这都是在子类中的操作) ? ?b、在main 方法时访问各类中的同名变量(父类和子类中都存在这个变量):? 访问子类中的同名变量:Zi z = new Zi();? sout(z.age);? ? ? ? 访问父类中的同名变量: sout(((Fu)z).age); ? c、当访问存在继承的类中的成员时,会优先取子类中查找成员,后到父类中查找 4、注意: ? ?当对于继承父类的子类来说,父类的成员只是执行结果只是默认值,即父类决定,而当子类需要在与父类同名成员的情况下执行得到别的结果时例如方法,就需要进行重载 ---方法重载。 @Override 在子类重写方法时可检查是否重写有误 当在子类中重写方法时重写访问权限不能低于父类的方法的访问权限 权限:public > 默认 > private 子类不能继承父类中的私有成员(private) 5、继承的构造方法 ? ? ?当父类与子类存在构造方法时(默认条件下都存在), 在创建子类时会执行子类的构造方法,一般都会在子类的构造函数中执行的第一条语句就是执行父类的无参构造方法,当然也可以手动在子类中写super(20),变成有参构造,前提是父类中有有参构造。 如果父类中构造了有参构造,尽量再构造个无参构造,因为只要手动建立了构造方法 ,系统将不再提供默认无参构造。以防后续出错。 public static class Fu{
public Fu(int age){
System.out.println("fu有参");
}
private int age;
public void show(){
System.out.println();
}
}
public static class Zi extends Fu{
public Zi(){ //由于父类中没有了无参构造 报错了
? 默认有个super(); 调用失败
System.out.println("zi 无参");
}
public Zi(int age){
super(20); //在子类构造方法中第一条语句默认都是创建父类的无参构造方法
// ,所以如果父类定义了有参构造,为构造无参会报错
System.out.println("zi 有参");
}
? ?? ? ? ?? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:43:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |