网易云课堂Java模拟面试笔记(31-40)
31.static方法
题目:找出错误
public static void main(String[] args){amethod(args);
}
public void amethod(String[] args){Syso(args);Syso(args[1]);
}
//静态方法中不能直接调用非静态方法
//static 修饰方法和属性时,说明是共享的,且只有唯一的一个
//amethod方法不是静态的,只有在创建对象的时候被初始化,通过对象去调用
//调用amethod时报错 可以加上static/创建对象调用
复制代码
** Java语言中,静态static可以修饰属性,可以修饰成员方法。使用static修饰成员后,成员变成类成员,多个对象共享。static方法中可以直接使用static成员,如果调用非static成员,需要使用对象调用。非static方法中,可以直接使用static或非static成员。**
32.static属性
题目;下面的程序片段将输出什么结果?
private int x;
private static int y;
public void addXY(){s++;y++;
}
public static void main(String[] args){TestStatic ts1 = new TestStatic();TestStatic ts2 = new TestStatic();ts1.addXY();ts2.addXY();Syso(ts1.x);Syso(ts1.y);
}
//1 2
复制代码
** 如果属性用static修饰,则成为类属性,所有对象共享。static属性只初始化一次,任何对象对其修改都是修改的是同一个地址空间的值,因此y的值是累加的结果。而非static属性是对象属性,属于每一个对象,每创建一个对象,将初始化一个实例属性,因此x的值不是累加的。**
33.final属性
题目:是否有编译错误?
public class TestFinal{private final int x;private static final int y = 0;
}
//x未被初始化
//直接初始化x 因为x是不能改变的 使用static可以减少创建的x (x = 9)
//或者在构造方法中初始化x的值,使每个对象都具有自己的final x
eg:public TestFinal(){x=1;
}
//static final 静态常量 命名通常为大写并用下划线隔开
复制代码
** final修饰变量后,变量成为常量,不可被修改。final不仅可以修饰属性,也可以修饰方法中的局部变量。当修饰属性是,要么声明的同时赋值,要么在构造方法为其赋值,不能再其他地方对其修改。如果使用final和static同时修饰时,则必须在声明的同时赋值。**
34.默认构造方法
题目:是否有编译错误?
private int x;
public TestConstructor(int x){this.x = x;
}
public static void main(String[] args){TestConstructor tc = new TestConstructor();//ERROR
}
复制代码
** 在Java类中,如果没有定义任何构造方法,将有一个默认的无参构造方法。如果定义了其他的有参数的构造方法,默认的构造方法即失效。在实际应用中,常常需要使用默认的构造方法,所以要习惯性保证一个类中有一个无参的构造方法。**
35.单继承特性
题目:是否有编译错误?
class Flyer{
}
class Animal{
}
public class Bird extends Flyer,Animal{//ERROR
}
复制代码
** 在Java类中,类与类之间的继承是单继承,也就是说,一个类最多只能有一个父类,但是一个父类可以同时有多个子类、 tips:Java语言中的单继承指的是类与类之间,类与接口之间的关系是可以一对多。**
36.this关键字的作用
eg:
public class Account{private String id;private double balance;private String name;public Account(String id, double balance){this.id = id;this.balance = balance;//id = id; 就近原则 //this:当前的引用 }public Account(String id, double balance, String name){this(id, balance);this.name = name;//调用其他的构造方法,使代码能够重用}public double getBalance(){return balance;}public void setBalance(double balance){this.balance = balance;}
}
复制代码
** this关键字有两个主要作用。第一个作用是指代当前的引用,用来调用当前类的属性和方法。第二个作用是在一个构造方法中,调用另外的构造方法,此时必须在构造方法的第一条语句。**
37.静态方法中的this
题目:是否有编译错误?
private static int level;
public static int test(){return this.level;
}
//在静态方法中不能使用this关键字
//静态方法和对象没有什么关系,this自然是指不到的
复制代码
** this关键字指的是当前的一个引用,而static方法与对象无关,是所有对象共享的,所以不能使用this。**
38.方法重载
** 方法重载是一种多态性的体现,指的是在一个Java类中,可以有多个同名但是不同参数的方法存在。不同参数指的是参数类型不同,或者参数个数不同,或者参数的顺序不同。方法重载主要的作用是能够方便使用。**
39.继承中的构造方法(一)
题目:是否有编译错误?
class Flyer{public Flyer(int i){}
}
public class Bird extends Flyer{}
复制代码
** 默认情况下,子类所有构造方法都调用父类的无参构造方法。而父类中定义了一个有参数的构造方法,默认的无参构造方法就失效,因此将发生编译错误。**
40.继承中的构造方法(二)
题目:是否有编译错误?
class Flyer{public Flyer(int i){}
}
public class Bird extends Flyer{public Bird(int i){//ERROR 默认调用无参的构造方法(super()}
}
//1) 创建父类无参构造方法
//2) 使用super关键字(第一行)
eg:public Bird(int i){super(i);
}
复制代码
** 默认情况下,子类所有构造方法都调用父类的无参构造方法。有两种修改方法,第一个方法是在父类中添加无参构造方法,第二个方法是在子类构造方法中使用super(i)调用父类的构造方法。**
转载于:https://juejin.im/post/5b5eda14518825210575f4c7
网易云课堂Java模拟面试笔记(31-40)相关推荐
- 网易云课堂Java进阶学习笔记系列01 -- 第3周 对象容器
个人为了复习一下Java基础, 在网易云课堂上报了翁恺老师的Java语言程序设计进阶篇的课程, 主要看了其中的3. 对象容器, 6. 设计原则, 7. 抽象与接口, 8. 控制反转与MVC模式这几部分 ...
- 网易云课堂Java进阶学习笔记系列03 -- 第7周 抽象与接口
第七周 抽象与接口 在第一周就有一个Shape类的例子.这个类有很多的子类,每个子类也都实现了父类的方法.实际上父类Shape只是一个抽象的概念而并没有实际的意义. 举例案例理解 如果请你画一个圆,你 ...
- 史上最强Tomcat8性能优化,网易云课堂java高级架构师
点击"Server Status",输入用户名.密码进行登录,tomcat/tomcat 登录之后可以看到服务器状态等信息,主要包括服务器信息,JVM,ajp和http信息 AJP ...
- 网易云课堂Java应用基础:入门篇
第一章:用Eclipse来做计算 1.1第一个Java程序 1.2.1读输入 1.2.2变量 1.2.3赋值 1.3表达式 1.3.1浮点数 1.3.2运算符优先级 1.3.3类型转换 第一章编程题 ...
- 网易云课堂Java入门视频课程
课程概述 本课程不提供教学服务.作业批改及证书发放. 程序设计是一门基础课程.对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯:对于非计算机专业而言,程序设计的学习 ...
- 最新《网易云课堂Java入门课程》
课程概述 本课程不提供教学服务.作业批改及证书发放. 程序设计是一门基础课程.对于计算机相关专业而言,程序设计是专业基础知识,是进一步学习其他专业知识的第一步阶梯:对于非计算机专业而言,程序设计的学习 ...
- 网易云课堂微专业--Java高级开发工程师
获取方式:公众号:文若课堂 5.微专业-java | |──大纲.jpg 910.32KB | |──阶段1:高性能编程专题 | | |──1.1.1 J ...
- 机器学习-吴恩达网易云课堂笔记
机器学习-吴恩达网易云课堂笔记 Machine Learning: A computer program is said to learn from experience E with respect ...
- 网易云课堂Nodejs笔记(js Function,css,写法)
网易云课堂Nodejs笔记(js Function,css) CSS position ---网页定位 margin ---元素外边距 padding ---元素内边距 nth-child()选择器 ...
- Java高级-云课堂后端项目实战 网易云课堂
Java高级-云课堂后端项目实战 网易云课堂 课程概述 <Java高级开发工程师>课程包含六大专题,分别是高性能编程专题.中间件专题.容器化技术专题.分布式系统开发技术.后端项目实战及网易 ...
最新文章
- 斯坦福统计学习理论笔记:Percy Liang带你搞定「贼难」的理论基础
- hdu 5631 Rikka with Graph(无向图的割边)
- ios15 LJScrollPageVC第三方框架的使用
- linux nginx http cache时间不对,Linux中Nginx设置proxy_cache缓存与取消缓存-linux-操作系统-壹...
- 第三十九讲:tapestry 页面加载等待过程(ProgressiveDisplay)组件
- form图片上传遇到错误
- SparkStreaming kafka zookeeper本地环境调试安装
- proxy ip 收集方式总结
- Apple Pay的使用
- Share Disk、Share Memory和Share Nothing的区别
- Hi3519A调试记录
- 淘宝客淘客6合一系统小程序APP返利饿了么外卖美团代理分销系统
- linux 上传下载测速
- 将多个Excel工作簿合并到一个Excel工作簿中
- 周公恐惧流言日,王莽谦恭未篡时
- 成一单亏一单,医疗电商的苦涩现状
- 1岁到1岁半宝宝食谱
- 24点游戏java代码 中国开源社区_编程实现一个有GUI的24点游戏
- MICCAI 2019 Proceeding 论文集part1-6
- 财务自由?这样做微信开发可以吗?