一、静态Static的内存图
package cn. itcast. day08. demo03;
public class Student {
private int id;
private String name;
private int age;
static String room;
private static int idCounter = 0 ;
public Student ( ) {
idCounter++ ;
}
public Student ( String name, int age) {
this . name = name;
this . age = age;
this . id = ++ idCounter;
}
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;
}
public int getId ( ) {
return id;
}
public void setId ( int id) {
this . id = id;
}
}
package cn. itcast. day08. demo03;
public class Demo03StaticStudent {
public static void main ( String[ ] args) {
Student. room = "101教室" ;
Student one = new Student ( "郭靖" , 20 ) ;
System. out. println ( "one的姓名:" + one. getName ( ) ) ;
System. out. println ( "one的年龄:" + one. getAge ( ) ) ;
System. out. println ( "one的教室:" + Student. room) ;
System. out. println ( "========================" ) ;
Student two = new Student ( "黄蓉" , 18 ) ;
System. out. println ( "two的姓名:" + two. getName ( ) ) ;
System. out. println ( "two的年龄:" + two. getAge ( ) ) ;
System. out. println ( "two的教室:" + Student. room) ;
}
}
二、静态代码块
package cn. itcast. day08. demo03;
public class Person {
static {
System. out. println ( "静态代码执行!" ) ;
}
public Person ( ) {
System. out. println ( "构造方法执行!" ) ;
}
}
package cn. itcast. day08. demo03;
public class Demo04Static {
public static void main ( String[ ] args) {
Person one = new Person ( ) ;
Person two = new Person ( ) ;
}
}
三、数组工具类Arrays
package cn. itcast. day08. demo04;
import java. util. Arrays;
public class Demo01Arrays {
public static void main ( String[ ] args) {
int [ ] intArray = { 10 , 20 , 30 } ;
String intStr = Arrays. toString ( intArray) ;
System. out. println ( intStr) ;
int [ ] array1 = { 2 , 1 , 3 , 10 , 6 } ;
Arrays. sort ( array1) ;
System. out. println ( Arrays. toString ( array1) ) ;
String[ ] array2 = { "bbb" , "aaa" , "ccc" } ;
Arrays. sort ( array2) ;
System. out. println ( Arrays. toString ( array2) ) ;
}
}
四、Arrays练习:字符串倒序排列
package cn. itcast. day08. demo04;
import java. util. Arrays;
public class Demo02ArraysPractise {
public static void main ( String[ ] args) {
String str = "afjadfha324892na3j2" ;
char [ ] chars = str. toCharArray ( ) ;
Arrays. sort ( chars) ;
for ( int i = chars. length - 1 ; i >= 0 ; i-- ) {
System. out. println ( chars[ i] ) ;
}
}
}
五、数学工具类Math
package cn. itcast. day08. demo04;
public class Demo03Math {
public static void main ( String[ ] args) {
System. out. println ( Math. abs ( 3.14 ) ) ;
System. out. println ( Math. abs ( 0 ) ) ;
System. out. println ( Math. abs ( - 2.5 ) ) ;
System. out. println ( "===========================" ) ;
System. out. println ( Math. ceil ( 3.9 ) ) ;
System. out. println ( Math. ceil ( 3.1 ) ) ;
System. out. println ( Math. ceil ( 3.0 ) ) ;
System. out. println ( "============================" ) ;
System. out. println ( Math. floor ( 30.1 ) ) ;
System. out. println ( Math. floor ( 30.9 ) ) ;
System. out. println ( Math. floor ( 31.0 ) ) ;
System. out. println ( "=============================" ) ;
System. out. println ( Math. round ( 20.4 ) ) ;
System. out. println ( Math. round ( 10.5 ) ) ;
}
}
六、Math练习:小学数学真题
package cn. itcast. day08. demo04;
public class Demo04MathPractise {
public static void main ( String[ ] args) {
int count = 0 ;
double min = - 10.8 ;
double max = 5.9 ;
for ( int i = ( int ) min; i < max; i++ ) {
int abs = Math. abs ( i) ;
if ( abs > 6 || abs < 2.1 ) {
System. out. println ( i) ;
count++ ;
}
}
System. out. println ( "总共有:" + count + "个" ) ;
}
}
七、继承的概念
八、继承的格式
package cn. itcast. day09. demo01;
public class Demo01Extends {
public static void main ( String[ ] args) {
Teacher teacher = new Teacher ( ) ;
teacher. method ( ) ;
Assistant assistant = new Assistant ( ) ;
assistant. method ( ) ;
}
}
package cn. itcast. day09. demo01;
public class Employee {
public void method ( ) {
System. out. println ( "方法执行!" ) ;
}
}
package cn. itcast. day09. demo01;
public class Teacher extends Employee {
}
package cn. itcast. day09. demo01;
public class Assistant extends Employee {
}
九、继承中成员变量的访问特点
package cn. itcast. day09. demo02;
public class Demo01ExtendsField {
public static void main ( String[ ] args) {
Fu fu = new Fu ( ) ;
System. out. println ( fu. numFu) ;
System. out. println ( "=======================" ) ;
Zi zi = new Zi ( ) ;
System. out. println ( zi. numFu) ;
System. out. println ( zi. numZi) ;
System. out. println ( "========================" ) ;
System. out. println ( zi. num) ;
System. out. println ( "========================" ) ;
zi. methodZi ( ) ;
zi. methodFu ( ) ;
}
}
package cn. itcast. day09. demo02;
public class Zi extends Fu {
int numZi = 20 ;
int num = 200 ;
public void methodZi ( ) {
System. out. println ( num) ;
}
}
package cn. itcast. day09. demo02;
public class Fu {
int numFu = 10 ;
int num = 100 ;
public void methodFu ( ) {
System. out. println ( num) ;
}
}
十、区分子类方法中重名的三种变量
package cn. itcast. day09. demo03;
public class Demo01ExtendsField {
public static void main ( String[ ] args) {
Zi zi = new Zi ( ) ;
zi. method ( ) ;
}
}
package cn. itcast. day09. demo03;
public class Fu {
int num = 10 ;
}
package cn. itcast. day09. demo03;
public class Zi extends Fu {
int num = 20 ;
public void method ( ) {
int num = 30 ;
System. out. println ( num) ;
System. out. println ( this . num) ;
System. out. println ( super . num) ;
}
}
十一、继承中成员方法的访问特点
package cn. itcast. day09. demo04;
public class Demo01ExtendsMethod {
public static void main ( String[ ] args) {
Zi zi = new Zi ( ) ;
zi. methodFu ( ) ;
zi. methodZi ( ) ;
zi. method ( ) ;
}
}
package cn. itcast. day09. demo04;
public class Fu {
public void methodFu ( ) {
System. out. println ( "父类方法执行!" ) ;
}
public void method ( ) {
System. out. println ( "父类重名方法执行!" ) ;
}
}
package cn. itcast. day09. demo04;
public class Zi extends Fu {
public void methodZi ( ) {
System. out. println ( "子类方法执行!" ) ;
}
public void method ( ) {
System. out. println ( "子类重名方法执行!" ) ;
}
}
十二、继承中方法的覆盖重写_概念与特点
十三、继承中方法的覆盖重写_注意事项
package cn. itcast. day09. demo05;
public class Fu {
public String method ( ) {
return null;
}
}
package cn. itcast. day09. demo05;
public class Zi extends Fu {
@Override
public String method ( ) {
return null;
}
}
package cn. itcast. day09. demo05;
public class Demo01Override {
}
十四、继承中方法的覆盖重写_应用场景
package cn. itcast. day09. demo06;
public class Phone {
public void call ( ) {
System. out. println ( "打电话" ) ;
}
public void send ( ) {
System. out. println ( "发短信" ) ;
}
public void show ( ) {
System. out. println ( "显示号码" ) ;
}
}
package cn. itcast. day09. demo06;
public class NewPhone extends Phone {
@Override
public void show ( ) {
super . show ( ) ;
System. out. println ( "显示姓名" ) ;
System. out. println ( "显示头像" ) ;
}
}
package cn. itcast. day09. demo06;
public class Demo01Phone {
public static void main ( String[ ] args) {
Phone phone = new Phone ( ) ;
phone. call ( ) ;
phone. send ( ) ;
phone. show ( ) ;
System. out. println ( "====================" ) ;
NewPhone newPhone = new NewPhone ( ) ;
newPhone. call ( ) ;
newPhone. send ( ) ;
newPhone. show ( ) ;
}
}
十五、继承中构造方法的访问特点
package cn. itcast. day09. demo07;
public class Fu {
public Fu ( int num) {
System. out. println ( "父类构造方法!" ) ;
}
}
package cn. itcast. day09. demo07;
public class Zi extends Fu {
public Zi ( ) {
super ( 20 ) ;
System. out. println ( "子类构造方法!" ) ;
}
public void method ( ) {
}
}
package cn. itcast. day09. demo07;
public class Demo01Constructor {
public static void main ( String[ ] args) {
Zi zi = new Zi ( ) ;
}
}
十六、super关键字的三种用法
package cn. itcast. day09. demo08;
import java. security. PublicKey;
public class Fu {
int num = 10 ;
public void method ( ) {
System. out. println ( "父类方法" ) ;
}
}
package cn. itcast. day09. demo08;
public class Zi extends Fu {
int num = 20 ;
public Zi ( ) {
super ( ) ;
}
public void methodZi ( ) {
System. out. println ( super . num) ;
}
public void method ( ) {
super . method ( ) ;
System. out. println ( "子类方法" ) ;
}
}
十七、this关键字的三种用法
package cn. itcast. day09. demo09;
public class Fu {
int num = 20 ;
}
package cn. itcast. day09. demo09;
public class Zi extends Fu {
int num = 20 ;
public Zi ( ) {
this ( 123 ) ;
}
public Zi ( int n) {
this ( 1 , 2 ) ;
}
public Zi ( int n, int m) {
}
public void shoNum ( ) {
int num = 10 ;
System. out. println ( num) ;
System. out. println ( this . num) ;
System. out. println ( super . num) ;
}
public void methodA ( ) {
System. out. println ( "AAA" ) ;
}
public void methodB ( ) {
this . methodA ( ) ;
System. out. println ( "BBB" ) ;
}
}
十八、super与this关键字图解
package cn. itcast. day09. demo10;
public class Fu {
int num = 10 ;
public void method ( ) {
System. out. println ( "父类方法" ) ;
}
}
package cn. itcast. day09. demo10;
public class Zi extends Fu {
int num = 20 ;
@Override
public void method ( ) {
super . method ( ) ;
System. out. println ( "子类方法" ) ;
}
public void show ( ) {
int num = 30 ;
System. out. println ( num) ;
System. out. println ( this . num) ;
System. out. println ( super . num) ;
}
}
package cn. itcast. day09. demo10;
public class Demo {
public static void main ( String[ ] args) {
Zi zi = new Zi ( ) ;
zi. show ( ) ;
zi. method ( ) ;
}
}
十九、Java继承的三个特点
二十、抽象的概念