第三周 学习总结
一、视频学习笔记
1、计算机语言发展基本概况
面向机器(汇编)、面向过程(C语言)、面向对象(Java语言);
2、类
- Java程序的基本要素;
- 是Java语言最重要的“数据类型”,封装着数据和对数据的操作;
- 类声明的变量被称作对象变量(即对象);
- 定义类包括类声明和类体;
- 类体包括变量声明和方法(即C语言的函数);
关于这一点有必要多说两句,请看下面的代码:
class A {
int x;
x = 100; //语句
void f() { //方法
if (x>10) {
x=100000; //语句
}
}
}
在上面的代码里面,存在错误的语句使用:x = 100;
注意,类体中只能包含变量声明和方法,没有任何其他的语句,执行类似x = 100;
的语句必须要在方法里面;
编译上述代码,结果截图如下:
似乎编译器不认识这个鬼东西是啥,出现了错误提示:“需要标识符”
- 成员变量:变量声明部分声明的变量(有默认值);其有效范围是整个类,与书写位置无关;
- 方法体内声明的是局部变量(没有默认值),只在方法类有效,与书写位置有关;
- 若局部变量和成员变量同名,则成员变量在方法内暂时失效;若想要使用成员变量,可以使用this语句;例:
class Lader {
float height = 10.0f;
float area;
float computerArea(){
float height = 5.0f;
area = height + this.height; //area = 5.0f + 10.0f
return area;
}
}
- 类的单一性:写程序时尽量让一个类解决一种问题;
- 关于成员变量的默认值
变量 | 默认值 |
---|---|
逻辑类型 | 假 |
数值类型 | 0.0 |
字符类型 | 空字符 |
3、构造方法与对象的创建
1、构造方法
构造方法是一个方法,是名词,不是动词意义上的构造方法
- 创建对象时使用;
- 构造方法是没有类型的(与类名一样);
- 默认的构造方法:当编写时没有定义构造方法,编译时java会提供一个与类名一致的默认构造方法(上述过程可以通过反编译javap来验证)
- 自定义的构造方法:在编写时定义了构造方法,编译时系统就不会提供默认的构造方法【注:自己定义的构造方法可以有多个,但是必须保证各个构造方法的参数类型不相同或者参数个数不相同】
2、创建对象
- 类是一种重要的数据类型,其声明的变量叫对象变量,简称对象;
class XiyoujiRenwu {
float height;
float weight;
String ear,head;
void speak (String s){
head = "歪着头";
System.out.println(s);
}
}
public static void main(String args[]) {
XiyoujiRenwu zhubajie,sunwukong;
//声明变量,就像是起名字
zhubajie = new XiyoujiRenwu();
/*
new运算符:
- 只能和构造变量运算
- 计算的结果是一个数
- 给zhubajie分配变量(创建对象)
*/
sunwukong = new XiyoujiRenwu();
zhubajie.height = 1.80f;
zhubajie.head = "大头";
zhubajie.head = "一双大耳朵";
sunwukong.height = 1.62f;
sunwukong.height = 1000f;
sunwukong.head = "长发飘飘";
System.out.println("zhubajie的身高:"+zhubajie.height);
System.out.println("zhubajie的头:"+zhubajie.head);
}
3、使用对象
- 对象.变量:调用变量;
- 对象.方法:调用方法;
- 如果使用了空对象去访问对象或者变量,编译会通过,但是运行会出错(错误提示:NullPointerException)
4、对象的引用和实体
- 对象本身存着一个引用,可以操作分配给自己的变量,调用类提供的方法;
- 实体是指分配给对象的变量;
- 对象包括实体和引用;
- 如果两个对象有类型相同的变量和相同的引用,那么二者具有完全相同的实体;
例:
class Point {
int x;
int y;
}
public class test {
public static void main(String args[]) {
Point p1,p2;
p1 = new Point();
p2 = new Point();
p1 = p2; //p1,p2具有相同的引用
p1.x = 1;
p2.x = 10;
p1.y = 100;
p2.y = 1000;
System.out.println(p1.x+" "+p2.x);
System.out.println(p1.y+" "+p2.y);
//此时输出的x,y相同,因为p1,p2的实体相同
}
}
输出的结果:
关系如图:
4、类与程序的基本结构
- 一个Java应用程序(也称作一个工程)由若干个类构成;
- 若是一个应用程序,至少要一个主类;
二、 输入调试教材第二三章的代码
三、脚本运行结果的截图
遇到的问题:
注:以下问题统统是一个萌新小白写给自己看的日志,对大家可能没有参考价值
1、虚拟机出现“Welcome to emergency mode ......”
原因分析:设置共享文件夹时,/etc/fstab文件没有设置好,根据百度的结果,挂载什么balabala东西出现了问题。
处理方法:在root模式下键入“vi /etc/fstab”,把新加的一行删了......
(菜的抠脚)后续有时间再来继续处理这个设置共享文件夹问题。
2、修改Ubuntu密码
主要适用于像我这样的嫌自己以前的密码太长的人
输入命令:
passwd dong //dong是我的用户名
输入的密码太过简单可能出现提示:
Bad:new passwd is too simple
这时候加上sudo命令即可:
sudo passwd dong //dong是我的用户名
再输一遍新密码就行;
根据学姐给的建议,可以参考博客 ubuntu下启用root登录使用命令sudo passwd root
解决;
3、在Git Bash中如何解决error: failed to push some refs to 'xxx(远程库)'错误提示
我遇到的错误信息截图如图所示:
参考链接可完美解决:https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html