一 方法
相当于C语言里的函数
package Method;
public class Demo01 {
//main方法
public static void main(String[] args) {
int add = add(1,2);
System.out.println(add);
}
public static int add(int a,int b){
return a+b;
}
public static int max(int num1,int num2){
int result = 0;
if(num1==num2 ){
System.out.println("相等");
return 0; // 终止方法
}
if(num1>num2 ){
result = num1;
}
if(num1<num2 ){
result = num2;
}
return result;
}
}
方法的重载
递归算法
package Method;
//递归,自己调用自己
// 应为Java是栈机制的,所以递归的算法会消耗大量的内存(调用次数多),代码简单但难为电脑,所以不建议使用
public class Demo03 {
public static void main(String[] args) {
System.out.println(f(5));
}
public static int f (int n){
if(n==1){
return 1;
}else {
return n*f(n-1);
}
}
}
二 数组
1.数组都是相同类型的有序集合
2.按照一定的恶先后顺序有序排列组合而成
3.数组里的被一个数据作为一个数组元素,可以通过他们的下标来访问他们。
数组的创建
三 类与对象
首先面向对象:以类的方式组织代码,以对象去组织封装数据。
三大特性:继承 封装 多态
我理解的类与对象的的意思是:如果世界看成一个类,那人就是其中一个对象。
类与对象的创建
package oop;
// Demo01 就是一个类
public class Demo01 {
public static void main(String[] args) {
// 调用非静态类的时候需要new来实例化,而静态类就不需要
Demo02 demo02 = new Demo02();
demo02.say();
Demo02.nosay();
}
}
=======================================================
package oop;
public class Demo02 {
//非静态类方法
public void say(){
System.out.println("学生说话");
}
// 静态类
public static void nosay(){
System.out.println("我们没有说话");
}
}
==================================================结果 学生说话
我们没有说话
类的构造器
构造器其实是构造方法,有以下两个条件:
1.必须和类的名字相同
2.必须没有返回值类型,也不能写void
package oop;
public class Person {
String name;
//构造器的创建
public Person() {
}
// 一旦定义了有参构造,无参就必须显现出来
public Person(String name) {
this.name = name;
}
}
==================================
package oop;
public class Demo05 {
public static void main(String[] args) {
Person person = new Person("caw");
System.out.println(person.name);
}
}
======================结果:caw
封装
通常,应禁止直接访问对象中数据的实际表示,应该通过接口来访问,称为信息的隐藏。
属性私有:get/set
package oop;
//一个项目应该只存在一个main方法
public class Application {
public static void main(String[] args) {
student s = new student();
s.setName("caw");
System.out.println(s.getName());
}
}
===========================================
package oop;
public class student {
private String name;
private int id;
private char sex;
//属性私有的情况需要设置get和set方法
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
}
======================================结果 caw
继承
继承的意思是类与类之间的一种关系,继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
注意:Java中类只有单继承没有多继承,意思就是爸爸可以有多个儿子,但儿子只能有一个爸爸
子类继承了父类的方法和属性
package oop.jicheng;
public class Application {
public static void main(String[] args) {
student student = new student();
student.say();
System.out.println(student.money);
System.out.println(student.getMone());
}
}
============================================
父类
package oop.jicheng;
//java中所有的类,都默认继承objec
public class person {
int money = 100;
private int mone = 10;
public void setMoney(int mone) {
this.mone = mone;
}
public int getMone() {
return mone;
}
public void say(){
System.out.println("说了一句话");
}
}
==============================================
子类
package oop.jicheng;
//子类继承父类,就会拥有父类的所有方法
public class student extends person{
}
======================================
说了一句话
100
10
super和this的使用
this指向本类的属性和方法,super指向父类的属性和方法。
package oop.jicheng2;
public class Application {
public static void main(String[] args) {
student student = new student();
student.test("cao");
student.test1();
}
}
=======================================
package oop.jicheng2;
// 私有属性不可被继承
public class person {
protected String name = "czw";
public void print(){
System.out.println("person");
}
}
/*
super 的注意点
super调用父类的构造方法,必须在第一行
super 必须只能出现在子类的方法或者构造方法中
this的注意
this 调用本身对象 没有继承也可以使用 本类的构造
super 代表父类对象应用 只能在继承条件下使用 父类的构造
*/
==============================================
package oop.jicheng2;
public class student extends person {
private String name = "huangcheng";
public void test(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
public void print(){
System.out.println("student");
}
public void test1(){
print();
this.print();
super.print();
}
}
===================================================
cao
huang
czw
student
student
person