方法(函数)重载
方法名一样,参数不一样,与返回值无关 参数的个数不一样 参数的类型不一样 如果参数个数一样,类型也一样,但是顺序要不一样 普通方法和构造方法都能重载
java内存(了解)
java的内存包含栈、堆、方法区、寄存器 栈:先进后出,局部变量、方法都在栈中 堆:new出来的对象就在堆 两个引用(变量)指向同一个对象:Student s = new Student(); Student s2 = s;
封装(Encapsulation)
将代码通过方法的形式将一些代码细节包装起来,防止外部代码的随机访问 要访问这些数据就必须通过调用函数来完成 三大特征都是为了少写代码、少修改代码 好处:提高了代码的阅读性、提高了代码的可维护性 体现:方法、对象、private get/set get/set和构造方法都可以对成员变量进行赋值
继承(inherit)
java中的继承:两个类之间通过extends关键字来描述父子关系,子类便可拥有父类的非私有成员 生活中的继承:子承父业 解决问题:提高了代码复用性、代码的维护性更高 语法: public class 父类 { } public class 子类 extends 父类 { } 注意事项: 如果一个类不继承任何类,默认继承Object, Object是java中的祖宗类 Java是单继承(一个类只能继承于一个类);多层继承,一个父类可以有多个子类 创建本类对象之前会先初始化父类对象 子类不能继承父类的private成员(属性,方法)
public class Car {
String color;
String brand;
int wheel;
public Car ( ) {
System. out. println ( "Car无参构造" ) ;
}
public Car ( String color, String brand, int wheel) {
System. out. println ( "Car有参构造" ) ;
this . color = color;
this . brand = brand;
this . wheel = wheel;
}
public void start ( ) {
System. out. println ( "启动" ) ;
}
public void stop ( ) {
System. out. println ( "停止" ) ;
}
}
public class CarTest {
public static void main ( String[ ] args) {
Car c1 = new Car ( ) ;
c1. brand = "特斯拉" ;
c1. color = "黑色" ;
c1. wheel = 4 ;
System. out. println ( c1. brand) ;
System. out. println ( c1. color) ;
System. out. println ( c1. wheel) ;
c1. start ( ) ;
c1. stop ( ) ;
Car c2 = new Car ( "白色" , "保时捷" , 4 ) ;
System. out. println ( c2. brand) ;
System. out. println ( c2. color) ;
System. out. println ( c2. wheel) ;
c2. start ( ) ;
c2. stop ( ) ;
}
}
public class TwoObject {
public static void main ( String[ ] args) {
Car c1 = new Car ( "白色" , "保时捷" , 4 ) ;
System. out. println ( c1. brand) ;
System. out. println ( c1. color) ;
System. out. println ( c1. wheel) ;
System. out. println ( "---------" ) ;
Car c2 = c1;
c2. brand = "法拉利" ;
c2. color = "红色" ;
System. out. println ( c2. brand) ;
System. out. println ( c2. color) ;
System. out. println ( c1. brand) ;
System. out. println ( c1. color) ;
System. out. println ( "---------" ) ;
System. out. println ( c1) ;
System. out. println ( c2) ;
System. out. println ( c1 == c2) ;
}
}
public class Student {
private int age;
String name;
public void setAge ( int age) {
if ( age >= 0 && age <= 120 ) {
this . age = age;
} else {
System. out. println ( "输入年龄无效" ) ;
}
}
public int getAge ( ) {
return age;
}
public void study ( ) {
System. out. println ( age) ;
}
}
public class EncapsulationDemo {
public static void main ( String[ ] args) {
Student s1 = new Student ( ) ;
s1. name = "张三" ;
s1. setAge ( 19 ) ;
s1. setAge ( - 100 ) ;
System. out. println ( s1. name) ;
System. out. println ( s1. getAge ( ) ) ;
}
}
public class Person {
String name;
int age;
int sex;
public void eat ( ) {
System. out. println ( "吃饭" ) ;
}
public void sleep ( ) {
System. out. println ( "休息" ) ;
}
}
public class Teacher extends Person {
public void teach ( ) {
System. out. println ( "教书育人" ) ;
}
}
public class InheritDemo {
public static void main ( String[ ] args) {
Teacher t = new Teacher ( ) ;
t. name = "语文老师" ;
t. age = 50 ;
t. eat ( ) ;
System. out. println ( t. name) ;
System. out. println ( t. age) ;
t. teach ( ) ;
}
}