1.面向过程、面向对象 eg:人开门;把大象装进冰箱。
2.面向对象的编程关注于类的设计。
3.变量:成员变量、局部变量。
4.方法:可以在方法内调用本类的其他方法,但不可以在里面定义新的方法。
5.面向对象编程的三条主线:
①类及类的构成部分:属性、方法、构造器、代码块、内部类。
②面向对象编程的特征:封装性、继承性、多态性(抽象性)。
③其他关键字:this、super、package、import、static、final、abstract、interface…
6.方法一般由对象调用。
7.类的初始化的内存解析:
①内存划分结构:
栈(stack)——局部变量、对象的引用名、数组的引用名。
堆(heap)——new出来的“东西”(如:对象的实体,数组的实体),含成员变量。
方法区——含字符串常量(如:类中的方法、类名、包名)。
静态域——声明为static的变量。
类的使用
package learning;
//测试类
public class TestPerson {
publicstatic void main(String[] args) {
//TODO Auto-generated method stub
Personp = new Person();
p.study();
p.showAge();
p.addAge(2);
p.showAge();
Personp1 = new Person();
p1.showAge();
}
}
class Person{
//属性
Stringname;
intage;
intsex;
//方法
publicvoid study(){
System.out.println("studying");
}
publicvoid showAge(){
System.out.println(age);
}
publicint addAge(int i){
age+= i;
returnage;
}
}
方法的重载的使用
package learning;
/*
* 方法的重载(overload)
* 要求:1.同一个类中2.方法名相同3.方法的参数列表不同(参数个数不同或参数类型不同)
* 补充:方法的重载与返回值类型没有关系
* */
public class TestOverload {
//以下三个方法构成重载
publicvoid mOL(int i){
System.out.println(i* i);
}
publicvoid mOL(int i,int j){
System.out.println(i* j);
}
publicvoid mOL(String str){
System.out.println(str);
}
//以下三个方法构成重载
publicdouble max(double d1, double d2,double d3){
return(max(d1,d2) > d3)? max(d1,d2) : d3;
}
publicdouble max(double d1,double d2){
return(d1 > d2)? d1 : d2;
}
publicint max(int i,int j){
return(i > j)? i : j;
}
publicstatic void main(String[] args) {
//TODO Auto-generated method stub
TestOverloadt = new TestOverload();
t.mOL(12);
t.mOL("www.baidu.com");
System.out.println(t.max(12,13));
System.out.println(t.max(12.1,32.4, 23.4));
}
}
class OverLoad{
//定义两个int型变量的和
publicint getSum(int i,int j){
returni + j;
}
//定义三个int型变量的和
publicint getSum(int i,int j,int k){
returni + j + k;
}
//定义两个double类型的数据的和
publicdouble getSum(double d1,double d2){
return d1 + d2;
}
//定义三个double类型的数据的和
publicvoid getSum(double d1,double d2,double d3){
System.out.println(d1+ d2 + d3);
}
publicvoid method1(String str,int i){
}
publicvoid method1(int i,String str){
}
}