上課代碼:
https://github.com/joychen1579/javaBaseDemos
上課視頻:
鏈接:https://pan.baidu.com/s/1s85SgpNR7I0qiEhi1NffvQ 密碼:ni6d
鏈接:https://pan.baidu.com/s/12TA3n2ikG-CYKKGmP8W5_A 密碼:vl7k
鏈接:https://pan.baidu.com/s/1xALOGC6fvQBPC4BjtOzU0A 密碼:x48m
作業視頻:
鏈接:https://pan.baidu.com/s/1a_Z_QFId31bxI6J1HpzKog 密碼:mpao
鏈接:https://pan.baidu.com/s/1RHStaHJws2jxcGSBaqRCzw 密碼:a4pc
鏈接:https://pan.baidu.com/s/1JeOFMHRlEQdYVvpIdglQDQ 密碼:cge1
一、繼承關鍵字
extends
重點1.
java當中繼承是單一性的。也就是說一個類只能繼承一個類。
重點2
如一個類不寫任何繼承類,會默認繼承Object
繼承特性
一個類繼承一個父類,這個類就會擁有父類除了private的其它一切屬性。
二、方法重寫
@Override
重點。重寫函數時,方法的范圍重寫只能重低往高寫。
如父類的方法是public 子類不能寫成private 或者 protected
權限等級從高往底如下:
- public
- protected
- 默認級別,什么都不用寫
- private
三、super關鍵字
調用父類的函數
構造函數
public Student(String name, int id) {
super(name, id);
}
一般函數
四、final 修飾類
修飾類:
public final class MyClass{
public static void main(String [] args){
}
}
此類不可以被繼承
修飾函數:
//說明這個函數不能被重寫
public final void myfun(){
}
修飾函數當中的參數:
public void fun1(final int num1){
new Thread(new Runnable() {
@Override
public void run() {
Log.e("TAG",""+num1);
}
});
}
作業1:
跟據上圖寫創建這些類。并指有繼承關系
作業2
找出下面代碼中的錯語
public class Test {
public static void main(String[] args) {
// Pass
System.out.println("Static field 'a' = " + a);
// Pass
foo();
// Error: this is a compilation error.
this.bar();
}
static void foo() {
System.out.println("Static method.");
}
void bar() {
System.out.println("Non static method.");
}
static int a = 10;
}
作業3
找下面代碼中的錯誤
// Parent.java
public class Parent {
public float aFun(float a, float b) throws IOException {
// ...
}
}
// Child.java
public class Child extends Parent {
// The following method definition will cause compilation error due to
// reducing the visibility of aFun(float, float)
float aFun(float a, float b) { }
}
作業4
建立一個汽車類,有Auto(是否是自動檔),包括輪胎個數,汽車顏色,車身重量,速度等成員變量,并通過不同的構造方法創建實例。至少要求 汽車能夠加速 減速 停車。 再定義一個小汽車類CarAuto 繼承Auto 并添加空調、CD等成員變量 覆蓋加速 減速的方法 。
作業5:
找出下面程序錯誤:
public class Test {
public static void main(String[] args) {
// Pass
System.out.println("Static field 'a' = " + a);
// Pass
foo();
// Error: this is a compilation error.
this.bar();
}
static void foo() {
System.out.println("Static method.");
}
void bar() {
System.out.println("Non static method.");
}
static int a = 10;
}
作業:6:
按要求編寫一個Java應用程序:
(1)編寫一個矩形類Rect,包含:
兩個protected屬性:矩形的寬width;矩形的高height。
兩個構造方法:
1.一個帶有兩個參數的構造方法,用于將width和height屬性初化;
2.一個不帶參數的構造方法,將矩形初始化為寬和高都為10。
兩個方法:
求矩形面積的方法area()
求矩形周長的方法perimeter()
(2)通過繼承Rect類編寫一個具有確定位置的矩形類PlainRect,其確定位置用
矩形的左上角坐標來標識,包含:
添加兩個屬性:矩形左上角坐標startX和startY。
兩個構造方法:
帶4個參數的構造方法,用于對startX、startY、width和height屬性
初始化;
不帶參數的構造方法,將矩形初始化為左上角坐標、長和寬都為0
的矩形;
添加一個方法:
判斷某個點是否在矩形內部的方法isInside(double x,double y)。如在矩
形內,返回true, 否則,返回false。
提示:點在矩形類是指滿足條件:
x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height)
(3)編寫PlainRect類的測試程序
創建一個左上角坐標為(10,10),長為20,寬為10的矩形對象;
計算并打印輸出矩形的面積和周長;
判斷點(25.5,13)是否在矩形內,并打印輸出相關信息。